PHP json_decode 函数只能处理 UTF-8 编码的字符串吗?

标签 php unicode utf-8 json

Here您可以阅读 json_decode 函数

only works with UTF-8 encoded strings.

那么为什么以下几行会产生不同的输出?

echo utf8_decode('1ñ2'), "\n";
echo json_decode('"' . '1ñ2' . '"'), "\n";

'ñ' 字符不是有效的 UTF-8 字符,即使如此,当该字符传递到它必须解码的字符串时,json_decode 也不会提示。

最佳答案

那是因为这两个函数正在做完全不同的事情。虽然 json_decode() 保持字符编码不变 (utf-8) 并且仅将 json 数据解析为 PHP 结构,utf8_decode()将字符编码转换为 ISO-8859-1。但 ISO-8859-1 不知道特殊的多字节字符。

关于PHP json_decode 函数只能处理 UTF-8 编码的字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20641186/

相关文章:

sql-server - MS-SQL-Server 上的 INSERT 语句中的 UTF-8 字符发生更改

python - 使用 lxml 和请求进行 HTML 抓取会导致 unicode 错误

PHP: 警告 mcrypt_generic_init(): Iv 大小不正确;供应长度:12,需要:8

php - 具有多个 where 子句的 select 查询是否在一个结果表中返回多个结果行?

CSS 样式表中的 PHP 变量

php - 为单个站点使用自定义 PHP.INI。 Windows 2003、64 位、IIS7.5、PHP 5.3.6

c++ - 如何在 Windows API 中指定与编码无关的字符串常量?

php - 自定义连接查询以获取 3 个表中的记录

java - 在java中获取twitter页面标题、描述和关键字

java - 即使使用 UTF-8,为什么 ¿ 在 Windows 和 Linux 中显示不同?