PHP显示unicode转义字符


php displays unicode escaped characters

问题由来已久:php + mysql + utf-8编码

我们有一个两部分的模型:一个后端服务,提供访问一些json数据通过web访问和一些客户端,显示数据。后端从mysql源读取数据,其排序类型为'utf8 -默认排序',PHP脚本是utf-8编码。

问题是呈现的json数据包含转义的unicode字符比如"Rungestra'u00dfe 20"。在这种情况下,怎样才能看到像"ß"这样的"真实"实体呢?

问题是呈现的json数据包含转义的unicode字符,如'Rungestra'u00dfe 20'

为什么这是个问题?'u00DF是字母ß的完全有效的JSON语法。任何JSON解码器都会将该字符串转义解析为单个字符U+00DF Latin Small Letter Sharp S.例如,如果您的客户端是web浏览器,则JSON.parse() .

ß可以按原样包含在HTML文档中,您不必将其转义为ßß

找到这个谷歌应该帮助这里。https://stackoverflow.com/a/2577882/2422553

尝试mb_convert_encoding()将"to"编码设置为'HTML-ENTITIES',并(如有必要)将"from"编码设置为'UTF-8'或您正在使用的任何Unicode编码。