如何不编码unicode,javascript
How to do not encode unicode, javascript
我从一个api中获取数据,并获得类似于的字符串
[
{
"reason": "Invalid address",
"email": "j'u00c3'u00a9r'u00c3'u00b4mel'u00c3'u00a4ufer@com"
},
{
"reason": "Invalid address",
"email": "dsfdsf"
},
]
现在我只做JSON.parse(数据),然后返回。但是,在前端,当渲染页面时,我得到了一些奇怪的字符,比如:
email: "jérômeläufer@com"
我想要的是逃离''u00c3''u00a9r。。。这些东西,只是为了像一样显示在页面上
email: "j'u00c3'u00a9r'u00c3'u00b4mel'u00c3'u00a4ufer@com"
或者,对这些东西进行编码,因为我会使用这些电子邮件作为参数来做一些事情,但是有了这些奇怪的角色,我就无法收到同样的电子邮件。
这样做可能吗?
解决方案
我已经解决了这个问题,实际上我是从sendgrid的api中获取无效的用户电子邮件列表,api是
GET https://api.sendgrid.com/api/invalidemails.get.json?api_user=user&api_key=key
得到的返回数据如下:
[
{
"reason": "Invalid address",
"email": "j'u00c3'u00a9r'u00c3'u00b4mel'u00c3'u00a4ufer@com"
},
{
"reason": "Invalid address",
"email": "dsfdsf"
},
]
所以我首先处理这个字符串"j''u00c3''u00a9r''u00c3''u00 b4mel''u00c3''u00a4ufer@com"使用
decodeURIComponent(escape(string))
它将在网页上正确显示,然后当我想删除此电子邮件并将此电子邮件作为参数从sendgrid调用删除电子邮件api时,如:
POST(which is weriod,but it's official delete method) https://api.sendgrid.com/api/invalidemails.delete.json
主体是:
body:{
user: ..,
key: ...,
email:unescape(encodeURIComponent(email))
}
然后它就起作用了,所以有人知道为什么吗?
JSON.parse
是正确的。问题在于内容本身,而不是你如何处理它
实际上,你需要与负责上游API的人交谈,让他们修复数据中的混乱。(尽管如此,如果数据是你最初发送给他们的,那么另一端仍然有可能是你的错。)
作为一种临时措施,您可以在解析JSON后撤消篡改。如果UTF-8字节被误解为ISO-8859-1,那么有一个成语可以用来进行匹配的编码/解码循环:
>>> decodeURIComponent(escape('jérômeläufer@com'));
'jérômeläufer@com'
(然而,它可能实际上是UTF-8字节,被误解为Windows代码页1252,在这种情况下,没有同样简单的修复程序,上面的代码会抛出exeception。我不知道它是来自上面格式错误的字符串的哪个编码。)
也不是说jérômeläufer@com
是一个合适的电子邮件地址:-)
看起来数据解析正确,问题出在源数据本身。
尝试通过在线转换器运行一些字符代码(十六进制值为"''u00c3"或仅为"0xC3"),您将获得JSON.parse 返回的字符
- 将unicode字符串从django传递到javascript
- 使用Javascript将Json中的unicode转换为HTML
- 如何使用JavaScript在HTML标题中正确插入unicode
- 当Python在Javascript中发送时,值将转换为UNICODE
- Javascript:Unicode符号选择器(用于将数学符号添加到文本区域)
- JavaScript Unicode Regex - 字符类中的顺序范围
- Javascript 将 unicode 字符串转换为“标题大小写”
- 在 Javascript 中显示 unicode 字符(表情符号)
- 从字符串中剥离 javascript unicode 字符 8206
- 如何将Javascript unicode字符串进动与php相匹配
- javascript unicode base64 encode
- 如何将Javascript Unicode解码为C#字符串
- JavaScript Unicode normalization
- c#中的Javascript unicode属性
- Manipulating JavaScript Unicode
- Javascript Unicode转换和搜索
- Javascript Unicode White Space
- Javascript unicode to ASCII
- Javascript unicode 字符循环
- Javascript Unicode Escaping Backslash