Xeo*_*oss 5 php string unicode utf-8
有许多方法可以表示+1百万个UTF-8字符.用macron(?)取拉丁语首都"A" .这是unicode代码点U+0100,十六进制数0xc4 0x80,十进制数196 128和二进制数11000100 10000000.
我想创建一个前65,535个UTF-8字符的集合,用于测试应用程序.这些都是代码点U+FFFF(byte3)之前的unicode字符.
是否可以执行类似for($x=0)循环的操作,然后将结果十进制转换为另一个基数(如十六进制),这将允许创建匹配的unicode字符?
我可以使用以下内容创建值?:
$char = "\xc4\x80";
// or
$char = chr(196).chr(128);
Run Code Online (Sandbox Code Playgroud)
但是,我不知道如何将其转变为自动化流程.
// fail!
$char = "\x". dechex($a). "\x". dexhex($b);
Run Code Online (Sandbox Code Playgroud)
您可以利用iconv(或其他一些函数)将代码点编号转换为UTF-8字符串:
function unichr($i)
{
return iconv('UCS-4LE', 'UTF-8', pack('V', $i));
}
$codeunits = array();
for ($i = 0; $i<0xD800; $i++)
$codeunits[] = unichr($i);
for ($i = 0xE000; $i<0xFFFF; $i++)
$codeunits[] = unichr($i);
$all = implode($codeunits);
Run Code Online (Sandbox Code Playgroud)
(我避免了代理范围0xD800-0xDFFF,因为它们无法自己放入UTF-8;那就是"CESU-8".)
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |