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>
View Code

 

亂碼原因:

sans、serif 兩個字體是“虛擬”字體。實際他們不存在。
是多個字體聯合組成的。
這個文件應該就是進行多字體文件綁定為這兩個虛擬字體的設置文件。

你 遇到亂碼,應該和這個配置無關。我想可能是你的程序里面設置了非中文字體。這樣系統會因為字體不全而調用默認字體進行解釋, sans serif 兩個就是常用的默認字體。結果默認字體綁定的有問題(畢竟這是西方人的東西,字體設置也偏向於西方)。導致文字顯示亂碼。或者之前就設置過 sans serif 字體,這個后補的內容反而影響了字體設置。這里的配置順序是按照文件名排序的,48 開頭的會優先於這個 49 開頭的配置。

你可以試試手工修改這個字體,里面是 xml 風格的文本配置內容。你可以找個你喜歡的中文字體,拷貝到計算機的字體目錄(一般是 /usr/share/fonts 里面的某個目錄,注意需要 root 權限)。
之后修改這個配置文件為你喜歡的組合(先開始英文,之后中文,字體支持程序會按順序調用,如果你把不喜歡的字體放在開始,就算后面的也能支持,但依然會調用最開始的字體,英文字體因為沒有中文部分,這樣字體程序會自動調用后面的)。
設置字體為 sans 、serif 后,重啟 X 就可以使用了(不重啟的話,只在最新運行的程序上面有效)。

這個文件一定要用純文本編譯器,且內容必須是 UTF8 的編碼(中文字體名字必須用 UTF8 )!另外,綁定的字體一定要是你系統里面有的字體,不然你的系統會忽略這個字體繼續下一個,如果你選擇的中文字體系統里面都沒有,會調用失敗而無法顯示中文。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM