【发布时间】:2011-05-14 00:31:44
【问题描述】:
$output = "ALLWILLBEASCII";
foreach ($output as $name => $value) {
echo mb_detect_encoding( $value );
}
如何在 PHP 中将 ASCII 转换为 UTF-8?
【问题讨论】:
$output = "ALLWILLBEASCII";
foreach ($output as $name => $value) {
echo mb_detect_encoding( $value );
}
如何在 PHP 中将 ASCII 转换为 UTF-8?
【问题讨论】:
如果一个字符是有效的 ASCII,它是有效的 UTF-8,没有什么可以转换的。 http://en.wikipedia.org/wiki/UTF-8
【讨论】:
json_encode中合并UTF-8和ASCII字符串,如果都一样呢?
您可以使用 mb_convert_encoding() 或 iconv() 来转换字符编码。
【讨论】:
ASCII 的字符是 Unicode 的子集,ASCII 的代码字也是有效的 UTF-8。所以你不需要转换,因为每个 ASCII 字符串也是一个有效的 UTF-8 字符串(反之亦然)。
【讨论】:
JSON.parse来自服务器的响应。我使用俄语来回答有关在 ZF2 中验证用户凭据的问题。因此,当我设置一些俄语消息(如果mb_detect_encoding 为utf-8)并且一些消息是ZF2 的默认值(如果mb_detect_encoding 则为ASCII),并且我将它们组合在一个json 答案中时,我在alert(xhr.response) 中看到俄罗斯消息是像["\u0440\u0436\u0438\u0442...,但英文是正常的"The input appears to be a DNS hostname...。但是在JSON.parse(xhr.response)之后,它们都正常了:)
\uxxxx(请参阅 RFC 4627)对任何非 ASCII 字符进行编码,以便与基于纯 ASCII 的协议兼容。