免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6044 | 回复: 6
打印 上一主题 下一主题

求助--用g_convert中文显示不出来--急等 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-03-02 10:43 |只看该作者 |倒序浏览
近来手上的一个项目中,需要将rss文档提取后显示在学习机电子书上,rss文档是"gb2312"编码的,因为学习机上用的是UTF-8编码,因此我转化
putf =g_convert(buff, strlen(buff),"UTF-8","GB18030", NULL, NULL,NULL);
//"gb2312"是"GB18030"的子集,
但不知道为什么,在显示的时候,有些中文显示不出来,尤其是在一行中,如果同时有英文中文,如果只让它显示英文,可以,如果加上中文,就整行都显示不了了,同时以下的内容也显示不了了.
--非常感谢.

论坛徽章:
0
2 [报告]
发表于 2008-03-02 12:23 |只看该作者
5分酬谢,xiexie

论坛徽章:
0
3 [报告]
发表于 2008-03-02 12:43 |只看该作者
g_convert(buffer, -1, "UTF-8", "GB2312", NULL, NULL, NULL);

论坛徽章:
0
4 [报告]
发表于 2008-03-02 13:08 |只看该作者
行不行也说句话啊..我还等着拿分呢

论坛徽章:
0
5 [报告]
发表于 2008-03-03 08:42 |只看该作者
把strlen(buff)换成-1,我试过了,还是不行,有同事说可能是读内容时偏移了可能出现这种情况,但我没检查到,都郁闷几天了.不过还是谢谢你了.

论坛徽章:
0
6 [报告]
发表于 2008-03-03 14:54 |只看该作者
原帖由 xr_bobo 于 2008-3-3 08:42 发表
把strlen(buff)换成-1,我试过了,还是不行,有同事说可能是读内容时偏移了可能出现这种情况,但我没检查到,都郁闷几天了.不过还是谢谢你了.


那是你读取到的内容本来就不完整了吧?

g_convert(buffer, -1, "UTF-8", "GBK", NULL, NULL, NULL);

肯定能把你读到的内容转成UTF-8的,有可能的话把整个函数贴出来看看

论坛徽章:
0
7 [报告]
发表于 2008-03-03 20:53 |只看该作者
问题解决了用str =g_convert(buffer, strlen(buffer), "UTF-8", "GBK", NULL, NULL, NULL);
返回转化的串,因为UTF-8中,汉字是三个字节,第一个字节以111开始,英文一个字节,以0开始,所以在显示时,要注意别把汉字给”截断“了,
同时也非常感谢楼上的兄弟,愿意以后如果有时间和你多交流,5分是你的了。我的QQ:187126061
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP