0

php可以将所有字符集编码的字符串转换为utf8吗?

不起作用的解决方案:

  1. utf8_encode($string)- 但它唯一将 ISO-8859-1 字符串编码为 UTF-8?
  2. iconv($incharset, $outcharset,$text)- 但是如何找到字符串当前编码?(只能是 html dom 文档的字符串部分,而不仅仅是字符串)

谢谢

4

2 回答 2

5

可以将字符串从iconv()PHP 支持的任何编码转换为 UTF-8。

但是如何找到字符串当前编码?

您永远不需要“找到”当前编码:您的脚本应该始终知道它是什么。您查询的任何资源,如果正确编码,将在content-type标头中或通过其他方式为您提供其编码。

正如 Artefacto 所说,有使用的可能性,mb_detect_encoding()但这不是一种可靠的方法。程序的数据流应该始终定义字符串的编码方式(最好在内部使用 UTF-8)——这就是要走的路。

于 2010-07-28T23:12:02.003 回答
1

通常,您无法知道给定字符串使用的编码。

你所能做的就是猜测。, 并不能很好地工作,然后还有mb_detect_encoding更复杂的启发式算法,例如浏览器使用的那些使用语言提示的启发式算法。

于 2010-07-28T23:10:58.370 回答