2012-04-05 217 views
5
  • iso-8859-1是否是utf-8的一個子集?
  • 那麼iso-8859-n呢?
  • windows-1252怎麼樣?

如果答案是否定的以上任何一個,什麼是不相交的字符?我正在測試一些檢測字符集的邏輯,並希望編寫測試來驗證檢測是否正常工作。字符集特殊字符

回答

8

iso-8859-1是否是utf-8的一個子集?

字符reportoire ISO-8859-1(統一的前256個字符)的是該UTF-8(每Unicode字符)的適當子集。

但是,characters U+0080 to U+00FF編碼在兩個編碼方面有所不同。

  • ISO-8859-1給每個這些字符單字節80FF的。
  • UTF-8編碼與兩字節序列C2 80C3 BF相同的字符。

那麼iso-8859-n呢?

這些是15種不同的編碼,總共包含614個不同的字符。其中一些字符出現在ISO 8859的多個「部分」中,有些則沒有。你必須更具體。

我看到你的問題被標記爲ISO-8859-2。這是在-2不在-1中的人物:

Ă㥹ĆćČčĎďĐđĘęĚěĹ弾ŁłŃńŇňŐőŔŕŘřŚśŞşŠšŢţŤťŮůŰűŹźŻżŽžˇ˘˙˛˝

有關Windows 1252是什麼?

Windows-1252就像ISO-8859-1一樣,只是它將0x80-0x9F範圍內很少使用的控制字符替換爲可打印的字符。這是Windows 1252,但不是ISO-8859-1的字符是:

ŒœŠšŸŽžƒˆ˜–—‘’‚「」„†‡•…‰‹›€™

+0

所以你說的iso-8859-1的那repetoire是utf-8的repetoire的真子集?我相信。我不確定的是utf-8的排斥與unicode的排斥相等。我認爲utf-16/utf-32的目的是能夠分別編碼更多/所有的unicode字符。 – 2012-04-05 19:27:41

+1

啊..我查了一下。由於UTF-8可以將字符表示爲多個字節,因此它可以表示所有的unicode repetoire。這現在有道理。 – 2012-04-05 19:48:39

0

Unicode是所有這些字符集的超集,以及幾乎所有已建立的字符集。您可以在這裏找到所有這些字符集到Unicode代碼點的映射列表:http://unicode.org/Public/MAPPINGS/