我正在从一个 api 获取数据,并得到如下字符串:
[
{
"reason": "Invalid address",
"email": "j\u00c3\u00a9r\u00c3\u00b4mel\u00c3\u00a4ufer@com"
},
{
"reason": "Invalid address",
"email": "dsfdsf"
},
]
现在我只做 JSON.parse(data),然后返回。但是,在前端,当渲染页面时,我得到了一些奇怪的字符,例如:
email: "jérômeläufer@com"
我想要的是逃避 \u00c3\u00a9r... 这些东西,只是为了在页面上显示
email: "j\u00c3\u00a9r\u00c3\u00b4mel\u00c3\u00a4ufer@com"
或者,对这些东西进行编码,因为我将使用这些电子邮件作为参数来做一些事情,但是由于这些奇怪的字符,我无法获得相同的电子邮件。
这有可能吗?
解决方案
我已经解决了这个问题,实际上我是从 sendgrid 的 api 获取无效的 useremail 列表,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\u00b4mel\u00c3\u00a4ufer@com"
decodeURIComponent(escape(string))
这将在网页上正确显示,然后当我想删除这封电子邮件并让这封电子邮件作为参数从 sendgrid 中调用 remove email 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))
}
然后它起作用了,所以有人知道为什么吗?