`
Joson_Coney
  • 浏览: 54776 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

GTK+ 中文显示解决方案

 
阅读更多

(转自:http://www.wangchao.net.cn/bbsdetail_40679.html

 

 

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
  北斗星君(黄庠魁)(王朝网络 wangchao.net.cn)

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics