自述文件
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开发周期。