GTK+ 中文显示解决方案

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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的一些方式。使用_作为函数名来显示中文。函数定义如下。

char *_(char *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

北斗星君(黄庠魁)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航