jQuery.ajax()
转义我的数据时正在做一些奇怪的事情。
例如,如果我发送请求:
$.ajax({
url: 'somethinguninteresting',
data: {
name: 'Ihave¬aweirdcharacter';
}
});
然后调查 Chrome devtools 中的 XHR,它将“请求有效负载”显示为name=Ihave%C2%ACaweirdcharacter
现在,我想通了:
'¬'.charCodeAt(0) === 172
并且 172 是AC
十六进制的。
向后工作,C2
(前面的“额外”字符)十六进制是十进制的 194,并且
String.fromCharCode(194) === 'Â'
我的问题:
为什么
encodeURIComponent('¬')
return '%C2%AC'
,这似乎是调用的结果
encodeURIComponent('¬')
(它本身返回'%C3%82%C2%AC'
)?