php能否将所有字符集编码的字符串转换为utf8

php能否将所有字符集编码的字符串转换为utf8,php,iconv,utf8-decode,Php,Iconv,Utf8 Decode,php能否将所有字符集编码的字符串转换为utf8? 不起作用的解决方案: utf8\u编码($string)-但它只将ISO-8859-1字符串编码为UTF-8 iconv($incharset,$outcharset,$text)-但如何找到当前编码的字符串? (仅当字符串是html dom文档的一部分时才可以,而不仅仅是字符串) 谢谢一般来说,您无法知道如何使用编码对给定字符串进行编码 你所能做的就是猜测。有mb\u detect\u编码,但实际上效果不好,还有一些更复杂的启发式方法,比如浏

php能否将所有字符集编码的字符串转换为utf8?

不起作用的解决方案:

  • utf8\u编码($string)
    -但它只将ISO-8859-1字符串编码为UTF-8
  • iconv($incharset,$outcharset,$text)
    -但如何找到当前编码的字符串? (仅当字符串是html dom文档的一部分时才可以,而不仅仅是字符串)

  • 谢谢

    一般来说,您无法知道如何使用编码对给定字符串进行编码


    你所能做的就是猜测。有
    mb\u detect\u编码
    ,但实际上效果不好,还有一些更复杂的启发式方法,比如浏览器使用的那些,它们使用语言提示。

    一般来说,您无法知道给定字符串的编码方式


    你所能做的就是猜测。有
    mb\u-detect\u编码
    ,但实际上效果不好,还有更复杂的启发式方法,比如浏览器使用的那些,它们使用语言提示。

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

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

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


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

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

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

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


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

    @Pekka。好奇的是,如果没有指定内容类型,我们应该假设它是什么编码,然后再使用什么编码?@Ben我想说仍然是ISO-8859-1,因为它的用户数量可能仍然是最多的。但是,如果服务器不返回任何字符集信息,这将是一个严重的配置错误。@Ben:mb\u detect\u编码可能会获得一些值,但它绝对不可靠。@Pekka&@Wrikken。谢谢你的意见。这两件事都要牢记在心。是的,这在服务器上可能是严重的配置错误,但有时在独立文本文件中也会发生。CP-1252经常被错误标记为ISO-8859-1。如果有疑问,最好使用
    mb\u detect\u编码
    来区分这两者。@Pekka。好奇的是,如果没有指定内容类型,我们应该假设它是什么编码,然后再使用什么编码?@Ben我想说仍然是ISO-8859-1,因为它的用户数量可能仍然是最多的。但是,如果服务器不返回任何字符集信息,这将是一个严重的配置错误。@Ben:mb\u detect\u编码可能会获得一些值,但它绝对不可靠。@Pekka&@Wrikken。谢谢你的意见。这两件事都要牢记在心。是的,这在服务器上可能是严重的配置错误,但有时在独立文本文件中也会发生。CP-1252经常被错误标记为ISO-8859-1。如果有疑问,最好使用
    mb\u detect\u编码
    来区分这两者。