php中的convert编码不能在ASCII和UTF-8之间进行转换


convert encoding in php doesn't convert between ASCII and UTF-8

UTF-8和ASCII不一样吗?你如何解释我从以下语句中得到的不同结果:

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

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

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

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

原因是当在UTF-8字符串中仅使用ASCII字符时,UTF-8字符串与ASCII字符串无法区分。(除非使用字节顺序标记,但这是可选的。)