linux 不能正常显示汉字

c897412341 2009-08-21 09:47:16
linux 在终端显示的汉字是正常的,可在QT中把同一个字符串用消息框显出来就是乱码了,这是怎么一回事,我应该怎么办?
...全文
476 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
c897412341 2009-08-25
  • 打赏
  • 举报
回复
难的不会,会的不难,

我还是想知道unicode(),encode(),decode()怎么使,在哪个头文件里
c897412341 2009-08-25
  • 打赏
  • 举报
回复
QT中怎么从unicode的中文转换成windows可认的GBK呢?
kakashi0309 2009-08-24
  • 打赏
  • 举报
回复
linux 有自带的iconv
iconv_open() iconv() iconv_close()
gamedragon 2009-08-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 c897412341 的回复:]
我看到了有人用unicode(),encode(),decode()这些,这些可以把GBK与unicode之间转吗?怎么使?这些在什么头文件夹里?
[/Quote]
http://www.xingfushenghuo.com/qt-cn/119/
LZ要学会使用网络资源,google比csdn好用N倍
gamedragon 2009-08-21
  • 打赏
  • 举报
回复
一个字符在不同码表里的值是不一样的。
比如“你”在GBK中表示是“AA BB”(举例而已),在unicode里表示是“CC DD”,在不同系统中因为应用的码表不同,看到的就不是同样的字。
对方是Windows,如果那个程序是非unicode的,八成是GBK编码,在linux这边要显示必须把这个字符串从GBK转成支持的编码。GTK+里有相应函数转,QT我不熟,肯定也有类似的东西。
c897412341 2009-08-21
  • 打赏
  • 举报
回复
uniconde这个怎么试?最好是给个例子
neohope 2009-08-21
  • 打赏
  • 举报
回复
字体或编码不对你用uniconde试试
c897412341 2009-08-21
  • 打赏
  • 举报
回复
同一个程序,有图形界面,即可用消息框显,又可用终端显,英文字母可以正常,汉字就不正常了
bourbaki 2009-08-21
  • 打赏
  • 举报
回复
不懂的路过。

我猜也许是:1. 应用程序不认识这个编码。2. 找不到字体库。
c897412341 2009-08-21
  • 打赏
  • 举报
回复
小弟初学,这个字符串是从Windows里用sockt收过来的,
字符串编码是啥?
GTK+要求UTF-8,QT要求啥编码?
这个能说清点吗?
gamedragon 2009-08-21
  • 打赏
  • 举报
回复
字符串编码是啥?
GTK+要求UTF-8,QT要求啥编码?
zhaofeng888 2009-08-21
  • 打赏
  • 举报
回复
编码不对,或者没有字体库
c897412341 2009-08-21
  • 打赏
  • 举报
回复
我看到了有人用unicode(),encode(),decode()这些,这些可以把GBK与unicode之间转吗?怎么使?这些在什么头文件夹里?
eijikayn 2009-08-21
  • 打赏
  • 举报
回复
乱码分两种情况:
1.终端(纯shell界面)的乱码
vi /etc/profile
export LC_ALL="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF-8:en_US:en:zh:zh_TW:zh_CN.BIG5"
保存退出,reboot系统即可..

2.X-window(图形界面)的乱码
vi /etc/sysconfig/i18n
LANG="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF8:en_US:en:zh:zh_TW:zh_CN.BIG5"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN:en_US.UTF8:en_US:en:zh:zh_TW:zh_CN.BIG5"
保存reboot即可...
上面是把基本所有中文语法都输入进去了。
记得是source 编辑过的文件,也可以载入环境变量。

vi /etc/sysconfig/i18n

将内容改为

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"

这样中文在SSH,telnet终端就可以正常显示了。

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧