IE-Angular的json响应包含删除了其他字符的Unicode字符。无效的JSON

时间:2019-01-07 18:58:33

标签: angularjs internet-explorer unicode character-encoding httpresponse

我有一个http响应,其名称包含一个Unicode字符(例如Müller)。 在IE11中,我收到一条错误消息“ Invalid Character”,因为在IE11中,似乎整个HTTP响应都被读取为angular的HTTP响应中的字符串,并且它尝试将此字符串解析为JSON(而不是已经存在于JSON中)格式)。但是在JSON字符串中,它看起来像这样:     ...,\"lastName\":\"M�}],\"id\":1,...

问题在于姓氏的一部分被剥夺了,现在lastName值缺少右引号。我不介意它显示菱形问号,现在完全破坏了响应。

在chrome中,它可以正常工作,因为数据实际上是作为JSON对象返回的,而与IE11不同的是,它作为字符串返回,然后尝试在默认的转换响应函数中转换为JSON。

该请求采用application / json字符集:utf-8格式。 响应为application / json格式。

有人知道怎么了吗?

编辑:在IE11的网络响应正文中,它以JSON格式正确显示为“Müller”。

编辑:返回响应时,它似乎吃掉了ü之后的前5个字符。 (例如,穆勒拉(Mülleraa)的外观类似于...\"M�a\"...,其中结尾的引号后面有一个附加的'a'字符)

1 个答案:

答案 0 :(得分:0)

在您的请求中,添加:

headers: {
  "Accept": "application/json;charset=utf-8",
  "Accept-Charset":"charset=utf-8"
},