我正在开发一个网络爬虫,它可以从世界各地的网站抓取数据,并处理不同的语言和编码。
目前我正在使用以下功能,它在 99% 的情况下都有效。但是有这 1% 让我很头疼。
function convertEncoding($str) {
return iconv(mb_detect_encoding($str), "UTF-8", $str);
}
最佳答案
与其盲目地尝试检测编码,不如先检查您下载的页面是否具有列出的字符集。字符集可以在HTTP响应头中设置,例如:
Content-Type:text/html; charset=utf-8
或者在 HTML 中作为元标记,例如:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
只有当两者都不可用时,才尝试使用 mb_detect_encoding() 或其他方法猜测编码。
关于php - 如何在 PHP 上将任何字符编码转换为 UTF8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6559822/