有很多方法可以代表+1百萬UTF-8 characters。用macron拉丁首字母「A」(Ā
)。這是unicode代碼點U+0100
,十六進制數0xc4 0x80
,十進制數196 128
和二進制11000100 10000000
。你將如何創建一個所有UTF-8字符的字符串?
我想創建一個用於測試應用程序的前65,535個UTF-8字符的集合。這些都是代碼點爲U+FFFF
(byte3)的所有unicode字符。
是否有可能執行類似for($x=0)
循環的操作,然後將生成的小數轉換爲另一個基(如十六進制),從而允許創建匹配的unicode字符?然而
$char = "\xc4\x80";
// or
$char = chr(196).chr(128);
,我不知道如何把它變成一個自動的過程:
我可以使用像這樣創造的價值Ā
。
// fail!
$char = "\x". dechex($a). "\x". dexhex($b);
'U + FFFF'不是根據定義的Unicode字符(既不是U + FFFE也不是用作字節順序標記)。 – 2010-05-01 05:09:45
您的問題讓代碼點(數字)與編碼(字節序列)相混淆。更確切的說法是。 「這是unicode代碼點U + 0100(十進制:256),它的UTF-8編碼是兩個字節:0xc4 0x80(或十進制196,128)...」 – leonbloy 2010-05-01 12:29:47
感謝您糾正我 – Xeoncross 2010-05-01 16:34:51