【问题标题】:convert encoding in php doesn't convert between ASCII and UTF-8 [duplicate]php中的转换编码不会在ASCII和UTF-8之间转换[重复]
【发布时间】:2013-04-03 06:59:06
【问题描述】:

UTF-8 和 ASCII 不一样吗?您将如何解释我从中得到的不同结果:

$result = mb_detect_encoding($PLAINText, mb_detect_order(), true);

有时我在 $result 中得到“UTF-8”,有时我得到“ASCII”。所以它们是不同的,但这不是我的问题,我的问题是为什么 iconv() 代码不能从 ASCII 转换为 UTF-8?

$result = iconv("ASCII","UTF-8//IGNORE",$PLAINText);

我稍后使用 mb_detect_encoding() 函数检查 $result 编码,它仍然是 "ASCII" ,而不是 "UTF-8"。

【问题讨论】:

  • “我知道 UTF-8 和 ASCII 几乎一样” - 什么?一定不行。推荐阅读:joelonsoftware.com/articles/Unicode.html
  • 谢谢,我编辑了帖子,以免人们误会。那么为什么 iconv() 不能从 ASCII 转换为 UTF-8?
  • UTF-8 与 ASCII 相同,他们称之为 ASCII。恰好 ASCII 的 127 个字符在 UTF-8 中具有相同的字节值。你读过我链接的文章吗?

标签: php encoding utf-8 ascii


【解决方案1】:

原因是在 UTF-8 字符串中仅使用 ASCII 字符时,UTF-8 字符串与 ASCII 字符串无法区分。 (除非使用byte order mark,但它是可选的。)

【讨论】:

    猜你喜欢
    • 2011-06-26
    • 2021-07-11
    • 2012-08-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2019-10-31
    • 1970-01-01
    相关资源
    最近更新 更多