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

标签 php encoding utf-8

我正在开发一个网络爬虫,它可以从世界各地的网站抓取数据,并处理不同的语言和编码。

目前我正在使用以下功能,它在 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/

相关文章:

PHP动态设置单选组的值?

javascript - 使用 PHP 和 JS 从 URL 解析 JSON

Python 不接受 UTF-8 编码

c++ - WideCharToMultiByte 问题

HTML5 页面语言、方向和编码

php - 如何使用 Cron 作业每天将行插入数据库?

php 从数据库中获取数据会减慢页面速度

algorithm - 是否有一个名称用于将字节序列编码为与前一个字节不同?

java - 使用 dom4j 读取时转换文档编码

java - Swing控件中文乱码,但俄文不乱码