代码之家  ›  专栏  ›  技术社区  ›  David Kuridža

用PHP解码Java的JSON-Unicode值

  •  1
  • David Kuridža  · 技术社区  · 14 年前

    question 在他们的论坛上,我在这里问这个问题的原因也很简单;分享是关心的:)因此这个问题部分与LinkedIn有关,但主要是想找到下面描述的一般编码问题的答案。

    如你所见,我的姓里有一封信 ž \u017e 但是Java(或者LinkedIn的API)返回 \u009e 有JSON,没有XML响应。PHP的 json_decode()

    经过调查,我发现 显然有两种说法, 9e 17e . 这到底是怎么回事?这个问题有解决办法吗?

    1 回复  |  直到 14 年前
        1
  •  0
  •   bobince    14 年前

    U+009E通常是一个不可见的控制字符,不能作为 ž

    这个 字节 在Windows代码页1252。如果使用ISO-8859-1解码,该字节将变成U+009E。

    (混乱的原因是如果你写 ž 在HTML页面中,浏览器实际上并不像您所期望的那样为您提供字符U+009E,而是将其转换为U+017E。所有字符引用0080009F也是如此:它们会被更改,就好像数字引用的是cp1252字节而不是Unicode字符一样。这是完全奇怪和错误的行为,但所有主要的浏览器都这样做,所以我们现在坚持它。除非在适当的XHTML中用作XML,因为这必须遵循更合理的XML规则。)

    从论坛页面上看,JSON的读取显然没有错:您的名字注册为David Kurid[U+009E]a,但是这些数据已经进入他们的系统需要查看。