如何在PHP上将任何字符编码转换为UTF8

我正在研究一种网络爬虫,它可以从世界各地的网站上获取数据,并且正在处理不同的语言和编码.

目前我正在使用以下功能,它在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()或其他方法猜测编码.

相关文章
相关标签/搜索