How to convert to Unicode character from string


normally if i store unicode character as follow, I would be able to output Chinese character.

string displayString = "\u9ede\u5440";
ofLog() << displayString;  //點呀

But whe I use OSC to receive unicode characters from external software:

ofxOscMessage m;

    if(m.getAddress() == "/text"){
        displayString ="";
        logString = m.getAddress();
        logString += ": ";
        for(int i = 0; i < m.getNumArgs(); i++){
            if(m.getArgType(i) == OFXOSC_TYPE_INT32){
                displayString += ofToString(m.getArgAsInt32(i));;
            else if(m.getArgType(i) == OFXOSC_TYPE_FLOAT){
                displayString +=ofToString(m.getArgAsFloat(i));
            else if(m.getArgType(i) == OFXOSC_TYPE_STRING){
                displayString += m.getArgAsString(i);
                displayString += "unknown";


ofLog() << displayString; // \u9ede\u5440
So it turns out to be a string of “\u9ede\u5440” instead and will not convert to Chinese character
How can I convert to them correctly as string?
thanks in advance.

What version of openFrameworks are you using? The latest version has better support for utf8.