PHP中的Charset检测
发布时间:2020-12-13 22:30:12 所属栏目:PHP教程 来源:网络整理
导读://我添加了一个新的参与,请参阅 Cheating PHP integers.任何帮助都感激不尽.我有一个想法,通过将整数打包成无符号字节来尝试和破解数组的存储选项(只需要8或16位整数来大大减少内存). 你好 我目前正在研究自定义字符集检测库,并使用Mozilla的字符集检测算法
//我添加了一个新的参与,请参阅
Cheating PHP integers.任何帮助都感激不尽.我有一个想法,通过将整数打包成无符号字节来尝试和破解数组的存储选项(只需要8或16位整数来大大减少内存).
你好 我目前正在研究自定义字符集检测库,并使用Mozilla的字符集检测算法创建了一个端口,并使用chardet(python端口)来提供帮助.但是,这在PHP中是非常耗费内存的(如果我只加载西方语言检测,大约30mb的内存).我已经优化了所有我可以从头开始重新加载每一块(这会减少内存,但会使它慢很多). 我的问题是,你知道任何进行字符集检测的LGPL PHP库吗? 我已经知道了mb_detect_encoding,但它太有限了,并且我用的文本文件带来了太多误报(但是python的chardet完全检测到它们) 解决方法
我创建了一个正确编码为UTF-8的方法.但很难弄清楚当前编码的是什么,所以我找到了这个解决方案:
<?php function _convert($content) { if(!mb_check_encoding($content,'UTF-8') OR !($content === mb_convert_encoding(mb_convert_encoding($content,'UTF-32','UTF-8' ),'UTF-8','UTF-32'))) { $content = mb_convert_encoding($content,'UTF-8'); if (mb_check_encoding($content,'UTF-8')) { // log('Converted to UTF-8'); } else { // log('Could not converted to UTF-8'); } } return $content; } ?> 如你所见,我做了一个转换来检查它是否仍然相同(UTF-8/16),如果没有转换它.也许你可以使用这些代码. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |