1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况。因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况。
2.倘若还有乱码,以及其他应用程序乱码,则尝试如下解决方案。
简单暴力的方法就是直接去掉默认配置文件。
代码语言:javascript复制1 $ sudo mv /etc/fonts/conf.d/49-sansserif.conf /etc/fonts/conf.d/49-sansserif.conf.bak
另外 ,49-sansserif.conf 是 flashplayer的字体,其实你修改一下就可以了。
代码语言:javascript复制 1 <?xml version="1.0"?>
2 <!DOCTYPE fontconfig SYSTEM "fonts.dtd">
3 <fontconfig>
4 <!--
5 If the font still has no generic name, add sans-serif
6 -->
7 <match target="pattern">
8 <test qual="all" name="family" compare="not_eq">
9 <string>sans-serif</string>
10 </test>
11 <test qual="all" name="family" compare="not_eq">
12 <string>serif</string>
13 </test>
14 <test qual="all" name="family" compare="not_eq">
15 <string>monospace</string>
16 </test>
17 <edit name="family" mode="append_last">
18 <string>字体</string> #把字体改为你喜欢的字体就可以了
19 </edit>
20 </match>
21 </fontconfig>
乱码原因:
sans、serif 两个字体是“虚拟”字体。实际他们不存在。 是多个字体联合组成的。 这个文件应该就是进行多字体文件绑定为这两个虚拟字体的设置文件。 你 遇到乱码,应该和这个配置无关。我想可能是你的程序里面设置了非中文字体。这样系统会因为字体不全而调用默认字体进行解释, sans serif 两个就是常用的默认字体。结果默认字体绑定的有问题(毕竟这是西方人的东西,字体设置也偏向于西方)。导致文字显示乱码。或者之前就设置过 sans serif 字体,这个后补的内容反而影响了字体设置。这里的配置顺序是按照文件名排序的,48 开头的会优先于这个 49 开头的配置。 你可以试试手工修改这个字体,里面是 xml 风格的文本配置内容。你可以找个你喜欢的中文字体,拷贝到计算机的字体目录(一般是 /usr/share/fonts 里面的某个目录,注意需要 root 权限)。 之后修改这个配置文件为你喜欢的组合(先开始英文,之后中文,字体支持程序会按顺序调用,如果你把不喜欢的字体放在开始,就算后面的也能支持,但依然会调用最开始的字体,英文字体因为没有中文部分,这样字体程序会自动调用后面的)。 设置字体为 sans 、serif 后,重启 X 就可以使用了(不重启的话,只在最新运行的程序上面有效)。 这个文件一定要用纯文本编译器,且内容必须是 UTF8 的编码(中文字体名字必须用 UTF8 )!另外,绑定的字体一定要是你系统里面有的字体,不然你的系统会忽略这个字体继续下一个,如果你选择的中文字体系统里面都没有,会调用失败而无法显示中文。