我在我的json,restapi中发送带有公告格式的JD。所以我编码jd并发送。这没有任何问题正常工作。但是当我尝试解码编码的JD时,我收到错误,因为URI格式错误
var jd = "Where are bullets most often used?
- Technical writing
- Reference works
- Notes
- Presentations";
var json ={
"job":encodeURIComponent(escape(jd));
}
解码:
var jd = decodeURIComponent(jd);
这是我编码的jd,我从响应中得到了。
Where%20are%20bullets%20most%20often%20used%3F%0A%uF0B7Technical%20writing%0A%uF0B7Sub%20bullet%0A%uF0B7Reference%20works%0A%uF0B7Notes%0A%uF0B7Presentations%0A%uF0B7Lists%0AAn%20alternative%20method%20is%20to%20use%20a%u807Dnumbered%20list%3A%0A1.Technical%20writing%0A2.Reference%20works%0A3.Notes%0A4.Presentations%0A5.Lists
答案 0 :(得分:1)
你必须先unescape
var jd = decodeURIComponent(unescape(json.job));
答案 1 :(得分:0)
escape()
。逃逸()
escape()
函数计算一个新字符串,其中某些字符已被十六进制转义序列替换。描述
转义函数是全局对象的属性。特殊字符的编码除了:
@*_+-./
字符的十六进制形式,其代码单元值为
0xFF
或更小,是一个两位数的转义序列:%xx
。对于具有更大代码单元的字符,使用四位数格式%uxxxx
。已过时。不适用于新网站。
Unicode字符存在非标准编码:
%uxxxx
,其中xxxx
是UTF-16代码单元,表示为四个十六进制数字。任何RFC都未指定此行为,并且W3C已rejected。 ECMA-262的第三版仍包含escape
函数,该函数使用此语法,以及encodeURI
和encodeURIComponent
函数,它们将UTF-8编码应用于字符串,然后使用百分比转义结果字节。— Wikipedia - Percent encoding - Non-standard implementations