【发布时间】:2019-01-07 18:58:32
【问题描述】:
我有一个名称包含 unicode 字符的 http 响应(例如 Müller)。
在 IE11 中,我收到一条错误消息,显示“无效字符”,因为在 IE11 中,似乎整个 http 响应被读取为 angular 的 http 响应中的字符串,并且它尝试将此字符串解析为 JSON(而不是已经在 JSON格式)。但在 JSON 字符串中,它看起来像这样:
...,\"lastName\":\"M�}],\"id\":1,...
问题是姓氏的一部分被剥离,现在 lastName 值缺少右引号。我不介意它显示菱形问号,它现在完全破坏了响应。
在 chrome 中它可以正常工作,因为数据实际上是作为 JSON 对象返回的,这与 IE11 不同,它作为字符串返回,然后尝试在默认的转换响应函数中转换为 JSON。
请求是 application/json charset: utf-8 格式。 响应为 application/json 格式。
有谁知道怎么回事?
编辑:在 IE11 的网络响应正文中,它以 JSON 格式正确显示为“Müller”。
编辑:它似乎在返回响应时占用了ü 之后的前 5 个字符。 (例如,Mülleraa 看起来像 ...\"M�a\"...,其中结束引号带有一个额外的 'a' 字符)
【问题讨论】:
-
>编辑:在 IE11 的网络响应正文中,它以 JSON 格式正确显示为“Müller”。 >编辑:它似乎在返回响应时吃掉了 ü 之后的前 5 个字符。 (例如,Mülleraa 看起来像 ...\"M�a\"... 其中结束引号带有一个额外的 'a' 字符)你的意思是在 IE11 的网络响应正文中,它显示了数据正确,当你尝试解析json字符串时,会显示invalid Character错误?
-
我使用following code创建了一个示例,响应对象还包含“Mülleraa”,但它在IE浏览器(版本:11.17134.1.0)上运行良好,结果like this。那么,您能否像Minimal, Complete, and Verifiable example 一样发布足够的代码来重现该问题。
标签: angularjs internet-explorer unicode character-encoding httpresponse