2010-11-18 40 views
5

我認爲utf-8將能夠處理一個整潔的£而不必轉換爲實體?HTML5 + UTF-8:我需要編碼英鎊符號(£)嗎?

使用UTF-8和HTML5處理GBP符號的正確方法是什麼?


更新(PS不認爲HTML5的部分應該有任何區別。):

這裏的測試文檔:

<!doctype html> 
<head> 
    <meta charset="utf-8"> 
    <title>GBP Test</title> 
</head> 

<body> 
£55 
<br /> 
&pound;55 
</body> 

謝謝大家對您的幫幫我。

對於任何面對這種挫折的人來說,這個問題都伴隨着你的文本編輯器。即使在非UTF-8的記事本格式。

SOLUTION:

改變讀取和寫入格式 UTF-8在我的文本編輯器(PHP Designer

+1

你的頁面編碼聲明爲(在HTTP標題中,或者在')? – 2010-11-18 15:07:24

+0

問題是什麼?我認爲UTF-8可以處理這個caracter。 – MatTheCat 2010-11-18 15:07:38

+0

@matts!更新了示例頁面 – Haroldo 2010-11-18 15:44:45

回答

4

只需使用的字符。它會正常工作。

當然,符號在UTF-8中的代碼點不同於ISO-8859-1。 UTF-8不支持ISO-8859-1編碼的英鎊符號,反之亦然。你必須轉換它。

相關:When Should One Use HTML Entities

+0

它似乎沒有在上面的例子中工作(只是添加到問題) - 是因爲我的文本編輯器輸入它非UTF - 8?或其他原因? – Haroldo 2010-11-18 15:45:38

+0

@Haroldo不確定'meta charset'是否可以工作。嘗試@Matt Ball的建議,並檢查瀏覽器是否真的瞭解它(在編碼菜單中) – 2010-11-18 15:50:38

+0

''didn' t工作要麼 – Haroldo 2010-11-18 15:54:55

4

簡短的答案是,你並不需要,只要你聲明的文件字符集爲UTF-8(使用一個Content-Type頭使用的大多數字符實體,在metacharset元素頭部或使用XHTML的xmlencoding屬性)...

你需要一個UTF-8 HTML文檔中進行編碼的唯一的字符(取決於上下文):

  • &amp; => &
  • &lt; => <
  • &gt; => >
  • &quot; => "

如果你正在使用XHTML(這也是有效的XML),你還需要與(再次,根據上下文)編碼單引號:

  • &apos; => '
  • &#39; = > '
  • &#x0027; =>&#x0027;

(注意,最後2是首選,因爲&apos;沒有在HTML ...定義)

還要注意的是&,<和>需要到處逃跑了,「和」只需要適當的屬性(因此,如果一個屬性是使用"報價,你需要逃脫屬性內的所有其他"字符)內進行轉義...

更多信息,請參見HTML 5 Draft ...

+0

除了在屬性值中,你不需要編碼'「和''' – 2010-11-18 15:25:14

+0

@Konrad:足夠公平,我會編輯相應的答案...... – ircmaxell 2010-11-18 15:33:19

+0

而工作只是非命名實體罰款在HTML中。 – Quentin 2010-11-18 15:41:32