javascript - 如何 encode和decode “unicode”
迷茫
迷茫 2017-04-10 14:42:07
0
1
533

此问题为我之前一个问题(点这里)的后续问题.

问题

从sendgrid api获取数据,获得plain/text数据(string 格式), 如

'[
  {
    "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"

需求

1, 如何不解析 \u00c3\u00a9r...这些unicode,而是以字符串形式直接显示在页面上。
2,如何在页面渲染之前encode这些unicode,因为这些email要作为参数再次请求[sendgrid api][2]中的删除邮件方法。所以请求的时候可以再decode这些unicode,把email作为参数,乱码的话,就不能匹配

如果用encodeURI() 则会把 比如[] 都解析了,所以就不能返回一个JSON格式,比较纠结,有没有什么好办法。

2014-11-07更新,问题已解决

首先用decodeURIComponent(escape(string))处理该字符串
"j\u00c3\u00a9r\u00c3\u00b4mel\u00c3\u00a4ufer@com"

这样将会在网页正确显示对应的符号。
当已该邮件作为参数调用删除api时

POST(这里有点怪,不是DELETE,但是官方的api) https://api.sendgrid.com/api/invalidemails.delete.json

body是

body:{
   user: ..,
   key: ...,
   email:unescape(encodeURIComponent(email))
}

然后就ok了

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(1)
伊谢尔伦

返回的错误值是无效的邮箱帐号,帐号里包含了宽字节的字符。

猜测:调用接口时,传递的值不对。 有效的邮箱格式用到都是普通字符ascii码表內的,不会包含宽字节的字符。
也许是你调用接口的方式错了, 或者调用接口时传递的是乱码

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!