c++ 转换unicode字符串为js u格式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 转换unicode字符串为js u格式相关的知识,希望对你有一定的参考价值。

唯一注意的就是 大小端问题, PC基本是 LE 

typedef union _uacode
{
    struct {
        BYTE LowByte;
        BYTE HighByte;
    }DUMMYSTRUCTNAME;
    struct {
        BYTE LowByte;
        BYTE HighByte;
    } u;
    wchar_t ch;
}UACODE;
string Unicode2AnsiCode(wstring str)
{
    const wchar_t *p = str.c_str();
    UACODE ua;
    string sResult(str.length()*6+1,\0);
    char*  pa = &sResult[0];
    for(wstring::const_iterator it = str.begin();it!=str.end();it++)
    {
        ua.ch = *it;
        if(ua.HighByte)
        {
            sprintf_s(pa,7,"\\u%02x%02x",ua.HighByte,ua.LowByte);
            pa+=6;
        }else{
            *pa = ua.LowByte;
            pa++;
        }
        
    }
    return sResult.c_str();
}

 转换 "经常a中b"

string s = Unicode2AnsiCode(L"经常a中b");
    printf("%s\n",s.c_str());
输出:  \u7ecf\u5e38a\u4e2db

 

以上是关于c++ 转换unicode字符串为js u格式的主要内容,如果未能解决你的问题,请参考以下文章

C++ 将 wstring 转换为 Unicode

怎样将unicode编码转换为中文

如何在 C++ 中将字符的十进制代码转换为 Unicode 字符串?

如何在 C++ 中将字符串从十进制代码转换为西里尔文/unicode16?

在Ruby中将unicode代码点转换为字符串字符

将十六进制 unicode 字符转换为其可视化表示