linux的gtk无法显示中文,GTK中文显示出现乱码解决方案
在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中文显示出现乱码解决方案相关推荐
- Linux下Java Font 中文字体不显示
为什么80%的码农都做不了架构师?>>> linux系统中jre不支持字体解决方法 Linux下Java中文字体不显示 https://blog.csdn.net/kenera ...
- python画图中文显示_解决Linux系统中python matplotlib画图的中文显示问题
最近想学习一些python数据分析的内容,就弄了个爬虫爬取了一些数据,并打算用Anaconda一套的工具(pandas, numpy, scipy, matplotlib, jupyter)等进行一些 ...
- qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...
本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...
- 01_Linux系统系统语言查询,设置Xshell工具,中文显示,测试Xshell中文字符显示,Linux中文显示乱码设置
Xshell是一个强大的安全终端模拟软件,它支持SSH1,SSH2,以及Microsoft Windows平台的TELNETNetSarang Xshell 4 Build 0 ...
- 解决Linux系统中python matplotlib画图的中文显示问题
解决Linux系统中python matplotlib画图的中文显示问题 参考文章: (1)解决Linux系统中python matplotlib画图的中文显示问题 (2)https://www.cn ...
- linux文件乱码crt,Linux中文文件显示乱码或Secure CRT显示乱码解决方案
Linux中文文件显示乱码或Secure CRT显示乱码解决方案 1.设置Secure CRT options->session options->appearance->fond( ...
- 中文linux(Ubuntu)下让date命令显示英语日期
Question 操作系统为中文,所以date显示都是中文.但是又无法更改操作系统的语言,因为还是要使用中文系统的. Solution localhost:dist Sean$ date 2018年 ...
- Crt链接linux中文乱码,securecrt怎么显示中文?securecrt中文乱码解决方法
描述 SecureCRT是一款支持SSH(SSH1和SSH2)的终端仿真程序,简单地说是Windows下登录UNIX或Linux服务器主机的软件. SecureCRT支持SSH,同时支持Telnet和 ...
- Linux——Ubuntu安装Fcitx以及Fcitx输入中文不显示候选词框的解决办法
一.安装Fcitx 1.安装Fcitx所需组件 $ sudo apt install fcitx fcitx-tools fcitx-config* fcitx-frontend* fcitx-mod ...
- arcgis server发布地图服务中文标注不能显示
现象:需要发布服务的mxd文件在arcmap中可以看到中文标注,在linux下arcgis server中发布成地图服务后中文标注无法显示. 原因: 没有中文字体 解决方法: 1.在/usr/shar ...
最新文章
- spark编程基础--5.4综合实例
- JNDI数据源配置注意事项
- 【Android Protobuf 序列化】Protobuf 使用 ( protoc 编译器简介 | 下载 protoc 编译器 | 使用 protoc 编译器编译 .proto 源文件 )
- 作业五—个人项目-小学四则运算 “软件”之升级版1
- simulink设计PID控制器及其封装详解
- Python可视化中Matplotlib(3.线条的详细样式及线性、保存图片、plot的详细风格和样式)、背景色、点和线的详细设置
- VTK:图片之ImageMapToColors
- 了解※数据科学※(一)之数据的概念及一个数据科学项目的流程分析
- xmpp协议框架包介绍:org.xmpp.packet.Packet+JID+PacketInterceptor+Session
- Java基础知识学习04-自定义类、ArrayList集合
- chrome 开发工具_我最喜欢的Chrome开发工具提示和技巧
- python公共变量_Python中的公共变量
- Vue指令之v-show
- css盒子模型实验报告总结_前端知识点总结——盒子模型
- 批量下载Landsat快视图,为批量下载Landsat Level1数据做准备
- 笔记:基于freeradius 3.0的wifi认证
- j3455跑mysql_基于J3455搭建NAS
- 【Kafka】生产者
- Long类型转为String类型
- 为什么90后不鸟管理者,却愿意被大神虐?