2010-10-13 125 views
2

我建議我的窗口1252 XHTML網頁轉換爲UTF-8。字符集,UTF8和字符實體

我在我的編碼以下字符實體:

  • ' - 撇號,
  • ► - 右指針,
  • ◄ - 左指針。

如果我改變字符集,並使用我的編輯保存網頁爲UTF-8:

  • 撇號仍然在爲一個字符實體;
  • 指針被轉換爲代碼內的符號(這大概是因爲實體還沒有UTF-8支撐?)。

問題:

  1. 如果我沒有理解UTF-8正確,你不需要使用實體和可以直接鍵入字符轉換成代碼。在這種情況下,我可以用鍵入的撇號替換#39安全嗎?

  2. 它是正確的,因爲編輯器已直接放置指針符號到我的代碼,並且將這些被現代瀏覽器中顯示的可靠,這似乎是確定?據推測,如果我使用UTF-8,我無法回覆實體?

謝謝。

回答

1

實體有三個用途:編碼字符不可能在所使用的字符編碼中進行編碼(與UTF-8不相關),編碼字符不便於在給定鍵盤上鍵入以及編碼字符非法轉轉。

►應該總是生成►不管什麼編碼。如果沒有,這是其他地方的錯誤。

直接在源代碼中是UTF-8。你既可以做,也可以做實體,它沒有區別。

'在大多數情況下都很好,但不是一些。以下都是允許的:

<span title="Jon's example">This is Jon's example</span> 

但必須在被編碼:

<span title='Jon&#x27;s example'>This is Jon's example</span> 

,否則爲「在結束的屬性值也將採取。

+0

謝謝喬恩,我的一些關鍵字包括撇號,你知道搜索引擎是如何解釋的實體?例如,他們是否會看到與小部件相同的小部件?我一直在想,如果他們停止在實體,只是看到部件。這是我在這種情況下不使用實體的一個很好的理由。 – cranfan 2010-10-13 10:39:50

+0

一個搜索引擎不能遵循HTML的基本規則,從源頭上知道'''與'''相同(或者甚至'J'與'J'相同,只是從來沒有這點很重要)不值得擔心。實際上,他們不僅會理解它是一個撇號,他們在確定是否將撇號與搜索詞相匹配時甚至會相當複雜。 – 2010-10-13 13:31:26

2

它的字符集,而不是chartset。

1)它取決於使用撇號的位置,它也是一個有效的ASCII字符,因此取決於字符意圖(僅用於顯示(在DOMText節點內)還是用於代碼中),您可能會也可能不會能夠使用文字撇號。

2)如果你的編輯器是一個現代的編輯器,它會使用UTF序列,而不只是燒焦顯示文本。代碼中使用的大部分序列都是純ASCII(而ASCII是utf8的子集),因此這些字符將佔用一個字節。其他字符可能會以專門的方式佔用兩個,三個甚至四個字節。它們仍然會作爲一個字符顯示給您,但字符和字節之間的關係已經變得不同。

無論如何;因爲所有有效的ASCII字符在ASCII,utf8甚至windows-1252中都完全相同。你不應該看到使用utf8的任何問題。而且您仍然可以使用數字和命名實體,因爲它們是用這些有效字符編寫的。你只是不需要。

P.S.所有現代瀏覽器都可以做utf8。但我們對「現代」的定義可能有所不同。

0

如果您從文字處理程序複製/粘貼內容,或者代碼是XML方言,則使用實體。在你的文本編輯器中使用一個宏來查找/替換一個鏡頭中的常見宏。下面是一個簡單的列表:

  • 半:½=>&#189;
  • 銳音符:E =>&#233;
  • 與號:& =>&#38;
  • 撇號:'=>&#39;
  • BACKTICK :'=>&#96;
  • 反斜槓:\ =>&#92;
  • 子彈:•=>&#8226;
  • 美元符號:$ =>&#36;
  • 美分登錄:¢=>&#162;
  • 省略號:... =>&#8230;
  • Emdash: - =>&#8212;
  • Endash: - =>&#8211;
  • 左引用:「=>&#8220;
  • 右引用:」 =>&#8221;

參考