关于GTK+ widget上显示中文字符有误的问题!

本文解决GTK应用程序中中文字符显示为乱码的问题。通过调整字符编码转换方式,将GB2312编码的中文字符串成功转化为UTF-8格式,从而消除警告并正常显示中文。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在GTK窗口和控件上显示中文字符的时候遇到问题,直接显示都是 框框圈圈叉叉 ……

于是度娘了下,问该问题的人相当的多,回答者大多如出一辙,回复的都是如下文章:

http://www.sudu.cn/info/html/edu/20070102/293163.html

该文章引用相当广泛,但实际上没有给出解决实际问题的方案,转载者也是不负责任的复制黏贴……NND

实际问题跟gtk依赖库glib相关

gtk字符编码默认的就是utf-8的,所以在程序中使用   GtkWidget *lable = gtk_label_new("中文"); 时,

运行程序过程中会出现打印警告(<unknown>:1449): Pango-WARNING **: Invalid UTF-8 string passed to pango_layout_set_text(),

改成 GtkWidget *lable = gtk_label_new(g_convert("中文",-1,"UTF-8","GB2312",NULL,NULL,NULL));

就行了。

 

在GTK+下显示中文

实际解决方案在此,转人家的一贴,感谢分享经验

http://blog.youkuaiyun.com/joker0910/article/details/6529469

 

如果想了解下字符编码方式:

http://www.cnblogs.com/xiaomia/archive/2010/11/28/1890072.html

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值