搜索PHP ord()函数的一个与Unicode兼容的良好替代方案

Dav*_*nes 5 php unicode

经过大量的搜索和测试,我发现了与Unicode兼容的PHP ord()函数替代品的最简单方法是:

$utf8Character = '?';
list(, $ord) = unpack('N', mb_convert_encoding($utf8Character, 'UCS-4BE', 'UTF-8'));
echo $ord; # 260
Run Code Online (Sandbox Code Playgroud)

我在这里找到的。但是,已经提到该方法相当慢。有谁知道更简单的更有效的方法?UCS-4BE是什么意思?

小智 4

您也许还可以使用 来实现此功能iconv(),但mb_convert_encoding您所拥有的方法对我来说看起来很合理。只要确保它$utf8Character是单个字符,而不是长字符串,它就会表现得相当好。

UCS-4BE 是一种 Unicode 编码,它将每个字符存储为 32 位(4 字节)整数。这就是“UCS-4”的原因;“BE”前缀表示整数以大端顺序存储。这种编码的原因是,与较小的编码(如 UTF-8 或 UTF-16)不同,它不需要代理对——每个字符都是固定大小的。