json_encode()
实际上并没有在那里输出 JSON*。它输出一个javascript字符串。(当您为其提供要编码的对象或数组时,它会输出 JSON。这很好,因为javascript字符串是你想要的。
在javascript(和JSON中)中,可以转义为.这两者是等效的。所以正在做的事情没有错。它应该工作正常。如果这真的给你带来了任何形式的问题,我会感到非常惊讶。但是,如果传输是安全的Unicode编码(UTF-8,通常是)†,也不需要它。如果要关闭转义,可以这样操作:.请注意,该标志是在 PHP 5.4.0 中引入的,在早期版本中不可用。č
\u010d
json_encode()
json_encode('Svrček', JSON_UNESCAPED_UNICODE)
JSON_UNESCAPED_UNICODE
顺便说一句,与@onteria_所说的相反,JSON确实使用UTF-8:
JSON 文本的字符编码始终为 Unicode。UTF-8 是唯一在网络上有意义的编码,但也允许使用 UTF-16 和 UTF-32。
* 或者,至少,它没有输出 RFC 4627 中定义的 JSON。但是,JSON 还有其他定义,允许使用标量值。
† JSON 可能采用 UTF-8、UTF-16LE、UTF-16BE、UFT-32LE 或 UTF-32BE。