簡體   English   中英

PHP中的Charset檢測

[英]Charset detection in PHP

//我添加了一個新的看法,請參閱作弊PHP整數 任何幫助都感激不盡。 我有一個想法,通過將整數打包成無符號字節來嘗試和破解數組的存儲選項(只需要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),如果沒有轉換它。 也許你可以使用這些代碼。

首先,你正在做的有趣的項目! 我很好奇最終產品將如何。

您已經看過ICU項目了嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM