在GTK+中,必须使用UTF-8的编码来显示中文。但我们平时在国内使用的是GB码。所以,由于编码不同会造成中文乱码的。解决的关键就是将中文转换成UTF-8再传给GTK显示就可以了。

GTK+提供了一个函数g_locale_to_utf8(),这个函数是GTK将系统默认编码转换成UTF-8的一个函数。但是,这个函数每次调用都要传入 5 个参数,太多又麻烦。所以,可以用一个函数来封装一下: char* _T(char* str) { return g_locale_to_utf8(str, -1, 0, 0, 0); } 如果需要调用时,就用 _T("你要显示的中文")就可以了成功显示中文了。 这个方式在Redhat Linux 9和Windows XP下测试都成功了。

例如:

#include

#include

gchar* _T(char* str)

{

return g_locale_to_utf8(str, -1, 0, 0, 0);

}

void delete(GtkWidget *widget,GtkWidget *event,gpointer data)

{

gtk_main_quit();

}

int main(int argc, char*argv[])

{

GtkWidget *window;

//初始化GTK

gtk_init(&argc,&argv);

//创建最上层主窗口

window = gtk_window_new(GTK_WINDOW_TOPLEVEL);

//连接信号"delete_event",使得窗口关闭时发生

g_signal_connect(G_OBJECT(window),"delete_event",GTK_SIGNAL_FUNC(delete),NULL);

//设置窗口标题

gtk_window_set_title(GTK_WINDOW(window),_T("notebook 练习"));

//设定窗口的默认宽高

//gtk_window_set_default_size(GTK_WINDOW(window),200,300);

//设定窗口的位置,让窗口总在最前端

gtk_widget_show(window);

gtk_main();

return FALSE;

} 我在windowsXP+VS2010 下测试成功。

linux的gtk无法显示中文,GTK中文显示出现乱码解决方案相关推荐

  1. Linux下Java Font 中文字体不显示

    为什么80%的码农都做不了架构师?>>>    linux系统中jre不支持字体解决方法 Linux下Java中文字体不显示 https://blog.csdn.net/kenera ...

  2. python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题

    最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...

  3. qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...

    本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...

  4. 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置

              Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...

  5. 解决Linux系统中python matplotlib画图的中文显示问题

    解决Linux系统中python matplotlib画图的中文显示问题 参考文章: (1)解决Linux系统中python matplotlib画图的中文显示问题 (2)https://www.cn ...

  6. linux文件乱码crt,Linux中文文件显示乱码或Secure CRT显示乱码解决方案

    Linux中文文件显示乱码或Secure CRT显示乱码解决方案 1.设置Secure CRT options->session options->appearance->fond( ...

  7. 中文linux(Ubuntu)下让date命令显示英语日期

    Question 操作系统为中文,所以date显示都是中文.但是又无法更改操作系统的语言,因为还是要使用中文系统的. Solution localhost:dist Sean$ date 2018年 ...

  8. Crt链接linux中文乱码,securecrt怎么显示中文?securecrt中文乱码解决方法

    描述 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT支持SSH,同时支持Telnet和 ...

  9. Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法

    一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...

  10. arcgis server发布地图服务中文标注不能显示

    现象:需要发布服务的mxd文件在arcmap中可以看到中文标注,在linux下arcgis server中发布成地图服务后中文标注无法显示. 原因: 没有中文字体 解决方法: 1.在/usr/shar ...

最新文章

  1. spark编程基础--5.4综合实例
  2. JNDI数据源配置注意事项
  3. 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
  4. 作业五—个人项目-小学四则运算 “软件”之升级版1
  5. simulink设计PID控制器及其封装详解
  6. Python可视化中Matplotlib(3.线条的详细样式及线性、保存图片、plot的详细风格和样式)、背景色、点和线的详细设置
  7. VTK:图片之ImageMapToColors
  8. 了解※数据科学※(一)之数据的概念及一个数据科学项目的流程分析
  9. xmpp协议框架包介绍:org.xmpp.packet.Packet+JID+PacketInterceptor+Session
  10. Java基础知识学习04-自定义类、ArrayList集合
  11. chrome 开发工具_我最喜欢的Chrome开发工具提示和技巧
  12. python公共变量_Python中的公共变量
  13. Vue指令之v-show
  14. css盒子模型实验报告总结_前端知识点总结——盒子模型
  15. 批量下载Landsat快视图,为批量下载Landsat Level1数据做准备
  16. 笔记:基于freeradius 3.0的wifi认证
  17. j3455跑mysql_基于J3455搭建NAS
  18. 【Kafka】生产者
  19. Long类型转为String类型
  20. 为什么90后不鸟管理者,却愿意被大神虐?

热门文章

  1. 几种用EXCEL实现字符串的颠倒的方法
  2. Outlook 转发/回复邮件时如何不显示邮件地址而只显示联系人名字?
  3. 程序员看世界之中关村与切糕(11)2012-12-16
  4. Hefei-NAMD报错与解决
  5. 472计算机毕业设计
  6. 有必要了解的Subword算法模型
  7. Hmac加密时间戳密码
  8. IP地址的组成和分类
  9. Echarts除了tooltip其它的标签暂时都不支持html情况下label标签加背景图片的美化方案
  10. FigDraw 4. SCI 文章绘图之散点图 (Scatter)