gpt4 book ai didi

php - PHP 中的字符集检测

转载 作者:可可西里 更新时间:2023-10-31 23:43:53 25 4
gpt4 key购买 nike

//我对此添加了新内容,请参阅 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),如果没有则进行转换。也许您可以使用其中的一些代码。

关于php - PHP 中的字符集检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5504384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com