获取文件的字符编码而不将整个文件读入内存

时间:2014-03-10 09:37:56

标签: php file character-encoding

我知道你是否需要在PHP中获取文件的字符编码

var_dump (mb_detect_encoding (file_get_contents ("somefile.txt")));

然而,使用大文件执行此操作并不是很实用,因为它占用了大量内存。

有没有办法可靠地确定字符编码而无需将整个文件读入内存?

2 个答案:

答案 0 :(得分:0)

不,无需读取整个文件就无法可靠地确定字符编码。

原因:与ASCII不同的字符代码(仍然是许多编码的基础部分)随机分布在文件中。他们可能偶然会出现在你没读过的部分。

当然,从一开始就很容易识别某些编码,但这不是问题所在。

(让您有机会接受答案作为解决方案,尽管答案可能已在评论中给出,您不应该做什么(SO政策)。)

答案 1 :(得分:-1)

是的,你可以使用缓存, 你可以使用下面的功能,可以帮助你相同的

例如:

输出: string(6)“你好” string(11)“Hello World”

更多功能:

PHP_OUTPUT_HANDLER_CLEANABLE ob_clean(),ob_end_clean()和ob_get_clean()。 PHP_OUTPUT_HANDLER_FLUSHABLE ob_end_flush(),ob_flush()和ob_get_flush()。 PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(),ob_end_flush()和ob_get_flush()。

了解更多信息,请访问:http://www.php.net/manual/en/function.ob-start.php