Windows下GTK+显示中文方法
来源:互联网 发布:用户画像 大数据挖掘 编辑:程序博客网 时间:2024/05/17 18:28
GTK+ 中文显示解决方案
有关GTK+在界面显示中文的问题,常常在Linux和使用GTK的Win32的开发人员心中隐隐作痛。不过,人类是聪明的。中国人有上下5000年的悠久的血统。所以,我们是聪明的。所以,对于中文显示也有很多对策。最常见的是IBM网站上用的gettext不过。我试过,至少在Win32下不行。所以,查了很多的资料。请教了很多Linux公社的人。现在有了很好的解决方式。
首先,GTK+不是不支持中文,而是必须使用UTF-8的编码来显示中文。而我们平时在国内使用的是GB码。所以,由于编码不同才会造成乱码的。既然是这样,所以问题也就迎刃而解了。我们只要在编译的时候将中文转换成UTF-8再传给GTK显示就可以了。
接着我们就要考虑如何实现了。在Linux公社有关这个解决方式的一种是将代码转换成UTF-8在用gcc编译。可是,我在win32下尝试过了。用mingw32编译失败。那么我们就用函数来实现吧。
最后我们就来看看该函数。
g_locale_to_utf8()
这个函数是GTK将系统默认编码转换成UTF-8的一个函数。
但是,这个函数每次调用都要传入 5 个参数。太多又麻烦。所以,接见gettext的一些方式。使用_作为函数名来显示中文。函数定义如下。
gchar *_(gchar *c)
{
return(g_locale_to_utf8(c,-1,0,0,0));
}
如果需要调用就用 _("中文")就可以了。
好了,这个方式在Redhat Linux 9和 Windows XP下测试都成功了。
其中,win32下的GTK是来自于
http://www.dropline.net/gtk/download.php
SDG - L&W
北斗星君(黄庠魁)(王朝网络 wangchao.net.cn)
有关GTK+在界面显示中文的问题,常常在Linux和使用GTK的Win32的开发人员心中隐隐作痛。不过,人类是聪明的。中国人有上下5000年的悠久的血统。所以,我们是聪明的。所以,对于中文显示也有很多对策。最常见的是IBM网站上用的gettext不过。我试过,至少在Win32下不行。所以,查了很多的资料。请教了很多Linux公社的人。现在有了很好的解决方式。
首先,GTK+不是不支持中文,而是必须使用UTF-8的编码来显示中文。而我们平时在国内使用的是GB码。所以,由于编码不同才会造成乱码的。既然是这样,所以问题也就迎刃而解了。我们只要在编译的时候将中文转换成UTF-8再传给GTK显示就可以了。
接着我们就要考虑如何实现了。在Linux公社有关这个解决方式的一种是将代码转换成UTF-8在用gcc编译。可是,我在win32下尝试过了。用mingw32编译失败。那么我们就用函数来实现吧。
最后我们就来看看该函数。
g_locale_to_utf8()
这个函数是GTK将系统默认编码转换成UTF-8的一个函数。
但是,这个函数每次调用都要传入 5 个参数。太多又麻烦。所以,接见gettext的一些方式。使用_作为函数名来显示中文。函数定义如下。
gchar *_(gchar *c)
{
return(g_locale_to_utf8(c,-1,0,0,0));
}
如果需要调用就用 _("中文")就可以了。
好了,这个方式在Redhat Linux 9和 Windows XP下测试都成功了。
其中,win32下的GTK是来自于
http://www.dropline.net/gtk/download.php
SDG - L&W
北斗星君(黄庠魁)(王朝网络 wangchao.net.cn)
- Windows下GTK+显示中文方法
- GTK+ 中文显示解决方案
- GTK+如何显示中文?
- GTK+显示中文字符串
- windows下ruby中显示中文的3种方法
- Windows下Git中正确显示中文的设置方法
- GTK+ 中文显示解决方案
- windows下VIM的中文显示设置
- windows下git bash显示中文
- windows下mysql 不能显示中文
- Elang在Windows console下显示中文
- windows下git bash显示中文
- Rmarkdown / knitr WINDOWS 系统下中文显示
- windows下git bash显示中文
- Windows下的mingw32显示中文
- cocos2dx在windows下如何显示中文
- windows下git bash显示中文
- Git windows下git bash显示中文
- 21世纪普通高等教育应用型规划教材·计算机系列:JSP网络程序设计
- 【JavaScript】保留两位小数
- 给自己一个定位 还是要写代码啦 跟人沟通打交道的那些 没有那么多兴趣
- HD7升级windows phone 7.5 记录
- 深入浅出的分析windows进程中的内存结构
- Windows下GTK+显示中文方法
- 庖丁解牛—winpcap源码彻底解密续 (12)
- How to uninstall CUDA driver and toolkit in Mac OS X?
- Linux下编译安装boost【转载】适用于新版本
- [Fedora]: Fedora当中使用C++编写程序
- C语言解决约瑟夫环的初级办法
- web前台设计技巧
- 流行的CMS(Content Management System) 比较.
- ETL 数据提取、转换和加载