首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

string里保存的utf8怎么输出

2013-11-21 
string里保存的utf8如何输出?\u5c71\u4e1c(山东)像这样,我取到的是12个字符,怎么能让它正常输出(输出山东)

string里保存的utf8如何输出?
\u5c71\u4e1c(山东)像这样,我取到的是12个字符,怎么能让它正常输出(输出山东)?
[解决办法]
你怎么存放进去的?
存编码对应的字符串不太靠谱
[解决办法]
找个json库先解json格式,解完再看是否有编译问题(视json处理能力可能有不同)
[解决办法]

引用:
找个json库先解json格式,解完再看是否有编译问题(视json处理能力可能有不同)


编译问题 = 编码问题
[解决办法]
输出到哪里?
[解决办法]
1)先看平台,是否支持UTF8
2)平台是否使用的就是UTF8
3)转换,为平台使用的编码输出。
[解决办法]
#include <stdio.h>
#include <wchar.h>
#include <locale.h>
#define MAXL 100
char u[]="\\u5c71\\u4e1c",*p;
wchar_t us[MAXL];
int i;
int main() {
    _wsetlocale(LC_ALL,L"chs");
    printf("u:[%s]\n",u);
    i=0;
    p=u;
    while (1) {
        if (1!=sscanf(p,"\\u%4hx",&us[i])) break;
        i++;
        if (i>=MAXL-1) break;
        p+=6;
    }
    us[i]=0;
    wprintf(L"us:[%s]\n",us);
    return 0;
}
//u:[\u5c71\u4e1c]
//us:[山东]
//

热点排行