為什麼有些字元在 Chrome 中顯示為正方形?

為什麼有些字元在 Chrome 中顯示為正方形?

例如,在開發工具中我得到類似的資訊:

Chrome 開發工具

其中一些方塊位於行尾,最初我以為它們是回車符,但事實證明它們不是。

此外,方塊出現在沒有換行符的後面=或許多地方,並且在十六進位編輯器中查看文件顯示和>之間根本沒有任何字元(例如顯示為)="id="id=? "

這也偶爾出現在網頁中,例如我看到:

谷歌搜尋結果

e我複製了那句話,在十六進制編輯器中查看了它,並且和之間再次沒有字元:。原始碼中也沒有顯示任何內容。

我以前從未見過這種情況,自從我幾天前重新安裝 arch 後才出現這種情況。

Chrome 是:版本19.0.1084.15 dev
Arch 是:內核3.3.1-1-ARCHx86_64

locale.gen語言環境未en_GB註釋(UTF-8ISO-8859-1)。 chrome 中的編碼預設為ISO-8859-1,但切換為UTF-8沒有區別。

這是我使用的 html 檔:測試.html

修復會很棒,解釋會很棒,確認這是(或不是)只是我的設置的問題也​​很好。

編輯:在研究字體之後,我發現在這兩種情況下它都試圖使用 arial,它在 arch 中是ttf-ms-fonts包的一部分。安裝導致字體改變,但方塊仍然存在(儘管形狀不同)。在這兩種情況下,字體都不遵循系統的預設字體。

Chrome 開發工具 - 帶 arial

答案1

這解決了我的問題。安裝 dejavu 字型。

sudo pacman -S ttf-dejavu

答案2

有一種更好的方法來確定您缺少哪種字體,而不是盲目安裝字體包。

例如,我執行了以下操作來解決遺失的字體:

  1. 我收到一封包含兩個未知 Unicode 字元的電子郵件(代碼點:U+1F44B, U+1F3FC
  2. 將它們貼到此處:https://www.fontspace.com/unicode/analyzer#e=8J-Ri_Cfj7w
  3. 查看結果,其中將顯示包含這些表情符號/字元的字體
  4. 僅安裝所需的字體包,對我來說pacman -S noto-fonts-emoji很有效。
  5. 重建字體快取fc-cache -vf
  6. 重新啟動 Chrome/Chrom

或者,您可以查找 Unicode 名稱以協助在 Google 搜尋中找到字體:

$ echo -e 

答案3

標準列印Unicode 替換字符代替目前字體中不存在的字元。

可能的修復方法只是更改作業系統(如果瀏覽器繼承作業系統設定)或瀏覽器的預設字體。例如,我在 Ubuntu 11.10 上的 Firefox 11.0 使用「serif」字體(這可能是自由襯線),似乎支援很多Unicode字元。

PS:影像似乎消失了。

答案4

我也有同樣的問題。 這一頁例如,特別難以閱讀,整個頁面的文字中都出現了方塊。我可以透過將所有arial*.ttf檔案重新命名/usr/share/fonts/truetype/msttcorefonts為備份檔案名,然後將 Chrome 的預設 sans-serif 字體設為 Droid Sans 來修復此問題。我現在根本無法使用 Arial 字體,但至少頁面看起來不錯。

相關內容