1. 如果发送端已经encode成了utf8,则后端接收显示时,可直接采用utf8方式,一般而言,纯中国人用的系统
都带有这类字库.
2. 如果想查看你的ENV设置,可运行set查看,如果没有LC_ALL,就手动运行export LC_ALL=zh_CN
一般而言,Unix/Linux在默认状态下是LC_ALL=C,包括本地设置LC_LOCALE=C
如我的SuSE 10.1, 由于X下要zh_CN,而login时,本要显示中文(init 3),提示就变成了乱码,这没关系
如果LC_ALL=C,则提示就正常显示为ANSI C的英文提示.
3. 在X-Console下,按右键是有字符集设置,看看你当前使用的是什么字符集
举例说明:以前我在Windows下写的中文源码,可以在VS.NET下用Cl编译,也可以正常显示中文
当我们拿到arm的开发板上去时,在linux下编译时,gcc不能识别,为什么呢?写字板也可以保存非
英文字符为unicode码的.这时如果源码中的中文不是标准的GB,则gcc会报错.
而且在开发板上显示乱码.当以纯文本输入后,在vi下,虽然看起来是乱码,但这是正确的.只是输入
是正确的GB码,以QByteArray串读入,而encode时指定的是GB,这时编译后的就是正常的utf8码了.
而qte最早的版本中,fonts可以支持GBK,GB2312,只是当时于明俭他们设计时,字符集不是很好看.
这方面你可以在qt核心库的源码中看到.所以在开发板上显示时,1.7的Qtopia中文字符一个大一个小
很不好看.因此后来有同事专门制作了新的中文字库.如果有TrueType就更好了,Windows下的本可以
拿过去用,但有版权问题.
QString stores a string of 16-bit QChars, where each QChar stores one Unicode 4.0 character. Unicode is an international standard that supports most of the writing systems in use today. It is a superset of ASCII and Latin-1 (ISO 8859-1), and all the ASCII/Latin-1 characters are available at the same code positions.
QByteArray QTextCodec::convertFromUnicode ( const QChar * input, int number, ConverterState * state ) const [pure virtual protected]
QByteArray fromUnicode ( const QString & str ) const
以上函数可以将unicode码转换回GB或其它本地字符集.