Do Note

儒道佛魔修心地

Windows与Linux对比使用教程十二–中文乱码


    之前的那篇文章已经提到过如何解决音乐播放器中产生中文乱码的方法

    初用Linux OS的中文用户对于中文乱码十分反感,最终以放弃Linux重回Windows怀抱

    本文通过几个解决中文乱码的例子,帮助用户更感性的了解Linux下对字符编码兼容性,摆脱面对中文乱码的痛苦。

    当然,您得具备足够的耐心和信心才行


 

    事实上Ubuntu对中文有着优良的兼容性,兼容UTF-8和GB18030中文编码(GB18030 本身也兼容GB2312 ,GBK),那为何还会出现中文乱码现象呢?原因就在于所使用的程序身上。一般归结为两种可能

  • 编码配置问题:程序默认配置中识别的是其他格式的编码,没有指定中文编码。
  • 字体配置问题:程序已经指定为支持UTF-8/GB18030/GB2312/GBK,但是没有指定中文字体,所以不能显示,这种情况下会出现方块字。

下面分别以GeditFireFox为例,对应上述两种问题作实战解释。

一、Gedit中文乱码

    Gedit( Ubuntu 下的纯文本编辑器),也就相当于Windows下的记事本(notepad.exe),当然功能还更加强劲一些。

    在Ubuntu下用gedit打开时,中文显示是乱码,这是因为编码方式不同造成的。Windows下默认txt文件的编码方式是GBK,而Ubuntu下的gedit默认没有对GBK的支持。具体解决策略如下:

    • 运行gconf-editor,在左边的树中选择apps->gedit-2->preferences->encodings

    • 修改auto_detected的值,增加GB18030,GB2312 ,GBK 等几个 ( GB18030 兼容GB2312 ,GBK的,所以只添加有一个 GB18030就可以了的)

    • 再用gedit打开中文文档是不是已经搞定了。如果这样做了,还是不行的话,那就把GB18030置顶就行了。

二、FireFox中Flash显示方块字

    FireFox 应该并不陌生,但有时我们在其中看到的FLASH动态中文字体显示为方块,很明显是字体配置的关系所致。解决方法如下:

    1.终端输入:

  1. cd /etc/fonts/conf.d/  

    2.备份一下:

  1. sudo cp 49-sansserif.conf 49-sansserif.conf.bak 

    3.输入如下指令:

  1. sudo gedit ./49-sansserif.conf 

    4.此时文件显示内容。

        将其中的sans-serif或者serif用你自己系统中,支持中文的字体的名字代替,注意字体名字的大小写

        比如:我的系统中安装了文泉驿正黑,我则用文泉驿正黑代替上述所说的字段,结果如下:

  1. <match target=”pattern”> 
  2. <test qual=”all” name=”family” compare=”not_eq”> 
  3. <string>文泉驿正黑</string> 
  4. </test> 
  5. <test qual=”all” name=”family” compare=”not_eq”> 
  6. <string>文泉驿正黑</string> 
  7. </test> 
  8. <test qual=”all” name=”family” compare=”not_eq”> 
  9. <string>monospace</string> 
  10. </test> 
  11. <edit name=”family” mode=”append_last”> 
  12. <string>文泉驿正黑</string> 
  13. </edit> 
  14. </match> 

 除此以外,还有个偏方,来自于互连网,供参考~(亲测有效)

cd /etc/fonts/conf.d/
sudo cp 49-sansserif.conf 49-sansserif.conf.bak
sudo rm 49-sansserif.conf

 


 

     好了,以上文字我想已经说得很明白了,如有不懂请在下方留言,谢谢!


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.