2013-02-06 32 views
3

我有一堆HTML文檔,其中包含Windows-1252編碼中的一些簡單文本,但在整個文本中有span元素的衆多外觀font-family: Symbol'font-family:Symbol'and Windows-1252

例如:

<span style='font-family:Symbol'>Ñ</span> 

哪個顯示爲希臘字母delta - Δ在瀏覽器中。

谷歌告訴我,使用Symbol字體可能會在不同的系統上顯示不同的結果,因爲它實際上並不是一個明確定義的字體。
這是真的嗎?使用Symbol字體是否「不安全」?

如果是這樣,是否有任何方法可以將Symbol字體中的這些符號可靠地轉換(在我自己的系統中)爲Windows-1252對應的字體?

+0

Windows-1252根本沒有多少符號。是使用UTF-8的一個選項?或者,您可以使用html引用,即'Δ'爲delta字符。只需刪除字體系列。 – Esailija

+0

@Esailija如果將Windows-1252轉換爲UTF-8是安全的,那麼我想它是可能的。 – Acidic

+0

但是您不是從Windows-1252轉換爲UTF-8。如果您需要增量字符,則需要編寫增量字符。如果您只是將Windows-1252轉換爲UTF-8,則只需改爲「Ñ」,並繼續依賴字體。但是您可以編寫您需要的文本並保存爲UTF-8,並且由於UTF-8可以對它進行編碼,因此您將直接以delta字符結尾。 – Esailija

回答

1

依靠在訪問您的網站的所有電腦/智能手機/小工具上安裝特定字體總是不安全的。有一些字體嵌入技術在一些現代瀏覽器中可以很好地工作,但是您需要重新包裝Symbol字體,並且我懷疑版權所有者是否允許您這樣做。

當然,Symbol字體中的大多數字符都不在Windows-1252編碼中,但這不應該成爲問題。您可以使用following map來獲取適當的HTML實體。但是,您必須使用編程語言編寫腳本或程序(HTML只是標記語言)。

+0

那麼,我最終解析了你鏈接的地圖,並使用'HtmlAgilityPack'將它應用到我的所有文件中。謝謝。 – Acidic

0

問題是,你看到的希臘字母只是外觀,實際的字母是完全不同的東西。

我可以想出兩種方法將其轉換:
1.編寫一個腳本(使用您選擇的語言),將每個字母轉換爲希臘字母。 (Ñ=>Δ)
2.截取文檔/頁面並使用OCR程序將其轉換爲希臘文。

0

當使用font-family時,如果客戶端上沒有找到列出的字體,即沒有嵌入webfont,可能會導致客戶端的默認字體改變,因此您將顯示的字體替換爲不同的字體用戶。

您可能想要使用UTF-8編碼並將增量(Δ)標記放入HTML內容中,或者使用webfont嵌入來提供選項「使用我想要的字體」。