【问题标题】:php displays unicode escaped charactersphp 显示 unicode 转义字符
【发布时间】:2014-06-29 19:33:50
【问题描述】:

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

我们有一个由两个组件组成的模型:一个后端服务,通过 Web 访问提供对一些 json 数据的访问,以及一些显示数据的客户端。后端从 mysql 源读取数据,该源是排序规则类型“utf8 - 默认排序规则”,php 脚本是 utf-8 编码的。

问题是渲染的 json 数据包含转义的 unicode 字符 像'Rungestra\u00dfe 20'。在这种情况下,如何才能看到像“ß”这样的“真实”实体?

【问题讨论】:

    标签: php mysql json unicode utf-8


    【解决方案1】:

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

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

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

    【讨论】:

    • 确实如此。这是完全正确的。但是,接收客户端(使用 c#)可以正确解释数据。在这里可以找到 c# 的这个问题的正确答案:stackoverflow.com/questions/8558671/…
    【解决方案2】:

    谷歌发现这个应该在这里有所帮助。 https://stackoverflow.com/a/2577882/2422553

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

    【讨论】:

      猜你喜欢
      • 2015-11-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-09
      • 2014-05-26
      • 2014-01-14
      • 2013-05-29
      • 1970-01-01
      相关资源
      最近更新 更多