有许多方法来表示一百万个UTF-8字符,例如拉丁大写字母带长音符号的 "A" (Ā
)。这个字符的Unicode码位是U+0100
,十六进制数字是0xc4 0x80
,十进制数字是196 128
,二进制数字是11000100 10000000
。
我想创建一个包含前65,535个UTF-8字符的集合,以用于测试应用程序。这些都是Unicode字符,直到代码点U+FFFF
(字节3)。
是否可以使用诸如 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
也不是,它被用作字节顺序标记)。 - Tim Pietzcker