//我添加了一个新内容请参阅Cheating PHP integers。任何帮助都感激不尽。我有一个想法,通过将整数打包成无符号字节来尝试和破解数组的存储选项(只需要8或16位整数来大大减少内存)。
您好
我目前正在研究自定义字符集检测库,并使用Mozilla的字符集检测算法创建了一个端口,并使用chardet(python端口)来提供帮助。但是,这在PHP中是非常耗费内存的(如果我只加载西方语言检测,大约30mb的内存)。我已经优化了所有我可以不用从头开始重新加载每一块(这会减少内存,但会使它慢很多)。
我的问题是,你知道任何进行字符集检测的LGPL PHP库吗? 这纯粹是为了让我在正确的方向上给予指导。
我已经知道了mb_detect_encoding,但是它太有限了,并且我的文本文件带来了太多的误报(但是python的chardet完全检测到它们)
答案 0 :(得分:1)
我创建了一个正确编码为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),如果没有转换它。也许你可以使用这些代码。
答案 1 :(得分:0)
首先,您正在开展的有趣项目!我很好奇最终产品将如何。
您是否已经查看了ICU project?