维基媒体/utf正常

包含Unicode规范化例程,包括纯PHP实现和自动使用“intl”PHP扩展(如果存在)

安装以下为:2512837

受抚养人以下为:4

建议者以下为:0

安全以下为:0

星星以下为:8

观察者以下为:17

叉子以下为:2

4.0.0 2023-04-17 20:37协调世界时

此软件包是自动更新的。

上次更新时间:2024-03-28 22:12:20 UTC


自述文件

最新稳定版本 许可证

utf正常

utfnormal是一个包含Unicode规范化例程的库,包括纯PHP实现和自动使用“intl”PHP扩展存在。

需要关注的主要函数是UtfNormal\Validator::cleanUp()。这将去除XML中非法的非法UTF-8序列和字符,以及如有必要,转换为标准化形式C。

如果您知道字符串已经是有效的UTF-8,可以直接调用UtfNormal\Validator::toNFC()、toNFK()或toNFKC();这将转换给定的UTF-8字符串转换为规范化表单C、K或KC(如果还没有)。该函数假定输入字符串已经是有效的UTF-8;如果有是损坏的字符,这可能会产生错误的结果。

从绝对意义上讲,性能有点糟糕,尽管它应该很快纯ASCII文本。;)在可以快速确定为已存在的文本上在NFC中,这并不太可怕,但它会很快变得令人不安的缓慢,尤其是韩语文本(韩语分解/合成代码是超慢)。

Bug应归档维基媒体的伪装者在“utfnormal”项目下。

重新生成数据表

UtfNormalData.inc和UtfNoralDataK.inc是从Unicode生成的通过脚本“generate.php”创建字符数据库。运行“composer generate”以重新生成表。要从internet获取更新的unicode数据,运行“composer generate---fetch”。

测试

运行“composer test”将运行语法检查器,即PHPUnit一致性测试,并使用维基百科中的示例文本运行一些基准测试。接受所有基准带有大粒盐的数字。

PHP模块扩展

如果存在“intl”PHP扩展,则使用ICU库函数很多比用纯PHP代码完成这项工作更快。

如果可能,强烈建议启用此模块:http://php.net/manual/en/intro.intl.php

此库的旧版本支持一次性自定义PHP扩展,它已被丢弃。如果您正在使用此功能,请迁移到intl扩展。

历史

该图书馆于年首次引入MediaWiki 1.3(4965兰特). 是的从MediaWiki代码库中分离出来并作为独立库发布MediaWiki 1.25开发周期。