pcrov / unicode
Unicode工具函数
0.1.1
2020-10-26 13:33 UTC
Requires
- php: >=7.3
Requires (Dev)
- phpunit/phpunit: ^9.4.0
This package is auto-updated.
Last update: 2024-09-08 17:00:05 UTC
README
Unicode工具函数。
函数
命名空间 pcrov\Unicode
.
surrogate_pair_to_code_point(int $high, int $low): int
将UTF-16代理对转换为单个代码点。 维基百科的UTF-16文章解释了这是什么。
utf8_find_invalid_byte_sequence(string $string): ?int
返回第一个无效字节序列的位置或null(如果输入有效)。
utf8_get_invalid_byte_sequence(string $string): ?string
返回第一个无效字节序列或null(如果输入有效)。
utf8_get_state_machine(): array
提供一个状态机,让您逐字节遍历(可能无限)的UTF-8序列。
其形式为[byte => [valid next byte => ...,], ...]
示例使用
function utf8_generate_all_code_points(): string { $generator = function (array $machine, string $buffer = "") use (&$generator) { // Completed a UTF-8 encoded code point. if ($buffer !== "" && isset($machine["\x0"])) { return $buffer; } $out = ""; foreach ($machine as $byte => $next) { $out .= $generator($next, $buffer . $byte); } return $out; }; return $generator(utf8_get_state_machine()); }
utf8_validate(string $string): bool
如其名。
数据
test/data目录包含两个文件,包含所有可能的UTF-8编码字符。总共1,112,064个。一个作为纯文本,另一个作为json。这些文件不包括在打包的稳定版本中,但可以使用上面提到的示例函数utf8_generate_all_code_points()
生成(返回纯文本字符串。)
摘自Unicode 10.0.0标准
在此处重新创建,以便于参考。没有人喜欢PDF。