Linux 解决 firefox 中文页面乱码问题

1.由于 firefox 默认是允许网页自己选择字体,在 Linux 上便会出现部分网站的乱码情况。因此可以取消允许页面自己选择字体这个选项便能解决部分乱码情况。

  

2.倘若还有乱码,以及其他应用程序乱码,则尝试如下解决方案。

  简单暴力的方法就是直接去掉默认配置文件。

1 $ sudo mv /etc/fonts/conf.d/49-sansserif.conf  /etc/fonts/conf.d/49-sansserif.conf.bak

  另外 ,49-sansserif.conf 是 flashplayer的字体,其实你修改一下就可以了。

 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 )!另外,绑定的字体一定要是你系统里面有的字体,不然你的系统会忽略这个字体继续下一个,如果你选择的中文字体系统里面都没有,会调用失败而无法显示中文。

时间: 2024-12-12 00:58:51

Linux 解决 firefox 中文页面乱码问题的相关文章

解决url中文参数乱码的问题--解码

<html> <body> <h3 class="projectName" id="projectName"></h3> <script type="text/javascript"> var unitID;    var unitName;    //获取参数的函数    function geturlPara()    {        var url = document.URL;

解决osgEarth中文显示乱码的几种方法

解决osgEarth中文显示乱码的几种方法 在此感谢那些在路上那个帮助过别人的朋友,谢谢. 方法一: 通过自己写函数转换类型. 下面这三个函数先复制过去吧. void unicodeToUTF8(const std::wstring &src, std::string& result) { int n = WideCharToMultiByte( CP_UTF8, 0, src.c_str(), -1, 0, 0, 0, 0 ); result.resize(n); ::WideCharT

linux下mysql中文显示乱码,读取又正常

今天发现linux中在shell中查看mysql数据库,中文显示乱码,但是取到网页中又是正常的. 解决方法1: 在第一次进入mysql时,加一句 set names utf8 //设置编码 解决方法2: 修改/etc/my.cnf文件: 在[client]下添加 default-character-set=utf8 在[mysqld]下添加 default-character-set=utf8 最后 /etc/init.d/mysql restart   重启即可

Django 邮件推送 解决附件中文名字乱码

Django邮件功能,详情可看官方文档(https://docs.djangoproject.com/en/1.10/topics/email/). 最近做这个功能时遇到的问题,发送附件,收到后中文名字乱码,解决方法如下: 需要对文件名在header中进行编码处理,否则,收到的附件中文名字会乱码. 1 from django.core.mail import EmailMessage 2 from email.header import make_header 3 4 email = Email

解决linux下unzip中文有乱码的问题

xxx.zip 中有中文的文件,在linux下unzip就会有乱码. 解决办法:安装7zip 去http://sourceforge.net/projects/p7zip/files/latest/download?source=typ_redirect 下载 p7zip_9.20.1_src_all.tar.bz2 上传到服务器tar -jxvf ,再make.make install. 解压文件:7za x xxx.zip 就OK了

Linux下windows中文文件乱码问题

table of content: 乱码问题 用gedit选择正确的字符编码打开文件 文件转码 总结 §乱码 Fedora安装时默认用UTF-8字符编码方式, 这么做有国际化的好处(和很多用utf-8的地方兼容), 但是也有兼容问题. 比如: 中文编码在windows下不是utf-8编码, 因为政策要求, 在中国销售的软件要用国标码 (即GBK, GB2312, GB18030(最新的)) 所以中文windows用GB18030的编码, 这就导致一个小问题. 在linux下打开windows的文

解决SecureCRT中文显示乱码

操作步骤 下面两步: 远程linux机器.改动环境变量LANG.比如在~/.bash_profile里面加入? export LANG=zh_CN.UTF8 又一次登录之后生效. 如今查看一下当前设置: [email protected]~> locale LANG=zh_CN.UTF8 LC_CTYPE="zh_CN.UTF8" LC_NUMERIC="zh_CN.UTF8" LC_TIME="zh_CN.UTF8" LC_COLLATE

如何解决MSSQL中文数据乱码问题

今天遇到了在数据库中直接写SQL语句,语句中包含中文,但是数据库的表里是包含"?" 的乱码. 我程序代码中,调试时得到的SQL不是乱码,在控制台中也不是乱码.但是在数据库中却出现了乱码. 当用MSSQL控制台去插入或更改中文数据时,中文字符可能会被显示成问号(??),以下提供2种解决办法: 1.在SQL里加上'N'强制转换编码   a.把所有字符字段都改成无符号类型,如:nchar,ntext,nvarchar    b.用查询分析器进行数据管理,在中文数据前加N,强制转换编码,如:i

jsp url传中文页面乱码

环境:jsp+tomcat6.0+nginx问题:url传递中文乱码 解决:通过tomcat 配置文件添加编码格式配置即可. 之前一直写成URLEncoding导致改了好几天没改出来.看网上方式都是说加这段.原来是单词写错了