C++问题,关于Unicode码转中文,懂的答,要是有代码最好加注释,谢谢,我是刚学C++没几天,C++新手

2025-03-07 05:24:50
推荐回答(1个)
回答1:

static wstring unicode2string(char * str){  
    wstring rst;  
    bool escape = false;  
    int len = strlen(str);  
    int intHex;  
    char tmp[5];  
    memset(tmp, 0, 5);  
    for (int i = 0; i < len; i++)  
    {  
        char c = str[i];  
        switch (c)  
        {  
        case '//':  
        case '%':  
            escape = true;  
            break;  
        case 'u':  
        case 'U':  
            if (escape)  
            {  
                memcpy(tmp, str+i+1, 4);  
                sscanf(tmp, "%x", &intHex); //把16进制字符转换为数字  
                rst.push_back(intHex);  
                i+=4;  
                escape=false;  
            }else{  
                rst.push_back(c);  
            }  
            break;  
        default:  
            rst.push_back(c);  
            break;  
        }  
    }  
    return rst;  
}