string里保存的utf8如何输出?

N3verL4nd 2013-11-19 09:42:12
\u5c71\u4e1c(山东)像这样,我取到的是12个字符,怎么能让它正常输出(输出山东)?
...全文
329 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lm_whales 2013-11-20
  • 打赏
  • 举报
回复
1)先看平台,是否支持UTF8 2)平台是否使用的就是UTF8 3)转换,为平台使用的编码输出。
N3verL4nd 2013-11-20
  • 打赏
  • 举报
回复
引用 11 楼 zhao4zhong1 的回复:
#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:[山东]
//
谢谢zhao4zhong1老师!!!
赵4老师 2013-11-20
  • 打赏
  • 举报
回复
#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:[山东]
//
N3verL4nd 2013-11-19
  • 打赏
  • 举报
回复
问题是处理http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=58.57.91.184 json数据 方法1: 读取到string然后取数据,但是遇到了如何转化的问题(如何解决这个问题?) 方法二: 用可以解析utf8的库来处理(jsoncpp修改版http://download.csdn.net/detail/aqtata/6485251)
N3verL4nd 2013-11-19
  • 打赏
  • 举报
回复
引用 6 楼 Exaybachay 的回复:
输出到哪里?
输出到string
N3verL4nd 2013-11-19
  • 打赏
  • 举报
回复
引用 4 楼 todd_leftcode 的回复:
找个json库先解json格式,解完再看是否有编译问题(视json处理能力可能有不同)
恩,是用jsoncpp遇到的问题,因为jsoncpp不支持utf8,找到了一个个人修改版的,正常输出了http://blog.csdn.net/x_iya/article/details/16833663
Exaybachay 2013-11-19
  • 打赏
  • 举报
回复
输出到哪里?
todd_leftcode 2013-11-19
  • 打赏
  • 举报
回复
引用 4 楼 todd_leftcode 的回复:
找个json库先解json格式,解完再看是否有编译问题(视json处理能力可能有不同)
编译问题 = 编码问题
todd_leftcode 2013-11-19
  • 打赏
  • 举报
回复
找个json库先解json格式,解完再看是否有编译问题(视json处理能力可能有不同)
N3verL4nd 2013-11-19
  • 打赏
  • 举报
回复
引用 2 楼 mougaidong 的回复:
你怎么存放进去的? 存编码对应的字符串不太靠谱
http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=58.57.91.184 {"ret":1,"start":"58.57.64.0","end":"58.57.95.255","country":"\u4e2d\u56fd","province":"\u5c71\u4e1c","city":"\u6f4d\u574a","district":"","isp":"\u7535\u4fe1","type":"","desc":""} 这样的数据
turing-complete 2013-11-19
  • 打赏
  • 举报
回复
你怎么存放进去的? 存编码对应的字符串不太靠谱
N3verL4nd 2013-11-19
  • 打赏
  • 举报
回复
'\','u','5','c','7','1','\','u','4','e','1','c'

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧