2012-05-04 32 views
2

在GMail中查看時,我遇到了歐元貨幣符號HTML實體的問題。€歐洲貨幣符號的HTML實體在GMail中不可見

我使用的是€而不是€,在使用Firefox時,它顯示爲GMail中的方框/壞字符,而當它切換爲€時,它可以正常工作。

它似乎沒有影響雅虎!電子郵件帳戶,只有我迄今爲止看到的GMail。

一些研究讓我相信€€支持得更少,我應該切換,但是我想知道哪些應該用於整合和支持?

+0

當在Gmail以外的其他環境中使用時,「&#0128」是否可以在Firefox中使用? –

+0

@ChristoferEliasson是的,我剛剛用一個簡單的PHP腳本測試了它,它回顯了'echo'€',它確實有效。 – crmpicco

回答

4

這可能是一個字符編碼問題。 €僅僅意味着來自ISO 10646代碼頁的字符數128,這在技術上是未定義的。由於歷史原因,大多數瀏覽器根據windows-1252映射這些字符,但這只是標準化的行爲。然而,不管字符編碼如何,€都明確地映射到歐元貨幣符號。還有第三種選擇:對歐元符號使用unicode代碼點(€)。這也適用於任何瀏覽器。最後,您可以在HTML中添加文字歐元符號,但如果您這樣做,則需要確保在內容類型標題中設置正確的編碼,以便接收用戶代理可以理解它。

+0

從您的評論中可以明顯看出,像這樣做一攬子更改存在問題。在我的數據庫中更改這個值會影響系統的很多部分,所以我理解我很謹慎。這可能是誤解,原因是'€'在數據庫中,所以從你所說的改爲'€'是推薦的行爲。 – crmpicco

+1

'€'總是指來自ISO 10646的字符128,而不是來自當前選擇的代碼頁。 – Joni

+0

根據規範,'&#n;'表示ISO 10646中的代碼編號爲n的字符以及Unicode,與字符編碼無關。這個'€'在技術上是未定義的,因爲字符128是Unicode中的控制字符並且在HTML中被禁止。在實踐中,瀏覽器傳統上根據windows-1252解釋這些代碼,在這種情況下產生歐元符號。如果這種情況在Gmail中沒有發生,這是令人驚訝的,但無論如何,請使用像'€'這樣的正確引用。 –

5

代碼€對應於ISO-10646 character \u0080,它是一個不可打印的控制字符。儘管如此,一些瀏覽器可能會將其解釋爲歐元字符,因爲在Microsoft使用的文本編碼之一中,字節80h用於歐元,但它不是標準。

如果你想要一個便攜的方式來編碼歐元符號使用€€€

+0

謝謝,我已更新數據庫使用'€' – crmpicco