php可以将所有字符集编码的字符串转换为utf8吗?
不起作用的解决方案:
utf8_encode($string)
- 但它唯一将 ISO-8859-1 字符串编码为 UTF-8?iconv($incharset, $outcharset,$text)
- 但是如何找到字符串当前编码?(只能是 html dom 文档的字符串部分,而不仅仅是字符串)
谢谢
php可以将所有字符集编码的字符串转换为utf8吗?
不起作用的解决方案:
utf8_encode($string)
- 但它唯一将 ISO-8859-1 字符串编码为 UTF-8?iconv($incharset, $outcharset,$text)
- 但是如何找到字符串当前编码?(只能是 html dom 文档的字符串部分,而不仅仅是字符串)谢谢
可以将字符串从iconv()
PHP 支持的任何编码转换为 UTF-8。
但是如何找到字符串当前编码?
您永远不需要“找到”当前编码:您的脚本应该始终知道它是什么。您查询的任何资源,如果正确编码,将在content-type
标头中或通过其他方式为您提供其编码。
正如 Artefacto 所说,有使用的可能性,mb_detect_encoding()
但这不是一种可靠的方法。程序的数据流应该始终定义字符串的编码方式(最好在内部使用 UTF-8)——这就是要走的路。
通常,您无法知道给定字符串使用的编码。
你所能做的就是猜测。, 并不能很好地工作,然后还有mb_detect_encoding
更复杂的启发式算法,例如浏览器使用的那些使用语言提示的启发式算法。