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