【问题标题】:how to convert from Unicode to UTF-8 in PHP?如何在 PHP 中将 Unicode 转换为 UTF-8?
【发布时间】:2013-02-24 19:19:05
【问题描述】:

我保存了名为“File1.txt”的文件,内容(英语和希伯来语)“שלום hello”。 它的编码是Unicode。 当我执行“readfile”并发送标头时:

Content-type: text/plain;charset=utf-8

希伯来字符消失。 奇怪的是,当我再次打开文件时,我看到了希伯来字符(Unicode 支持希伯来语),而 UTF-8 扩展了 Unicode,所以理论上我不需要做任何转换。 我该怎么办?

【问题讨论】:

    标签: php file unicode utf-8


    【解决方案1】:

    “其编码[ing] 是 Unicode”这一行毫无意义。 Unicode 可以通过多种方式在文本文件中表示(UTF-8 就是其中之一)。

    如果您的意思是 - 它以 Unicode 格式保存在记事本中,这意味着该文件是 UTF-16LE。发送相应的标头:

    Content-type: text/plain;charset=utf-16
    

    它会起作用的。

    为了回答标题中的问题,通常在 PHP 中使用iconv() 函数在编码之间进行转换。不过请注意 - 它可能在托管环境中的 Web 服务器上不可用。

    【讨论】:

    • +1,Windows 将 UTF-16LE 误命名为“Unicode”引起了很多问题。请注意,PHP 或 Web 浏览器不能很好地处理 UTF-16LE。通常最好将 Web 的所有内容都转换为 UTF-8。
    • 谢谢,Windows 将 UTF-16LE 称为 Unicode 有什么原因吗?
    • 可能是为了不吓到用户太多。 :)
    猜你喜欢
    • 2015-07-20
    • 2021-07-06
    • 2020-06-07
    • 2013-09-07
    • 2017-04-23
    • 1970-01-01
    • 2018-04-01
    • 2013-01-25
    • 2023-03-29
    相关资源
    最近更新 更多