为什么中文需要2次encodeURI(url)才能保证不出现乱码

因为第一次编码,你的参数内容便不带有多字节字符了,成了纯粹的 Ascii 字符串。是字符串a
再编一次后,是字符串b,接收时容器自动解一次,容器自动解的这一次,不管是按 GBK 还是 UTF-8 还是 ISO-8859-1 都好,都能够正确的得到 字符串a,因为a 和b都是纯 Ascii 字符串。
我们在服务端拿到字符串a,就可以根据我们所需要的编码进行解码。

核心就是,容器会以默认的编码自动帮我们解码一次。

你可能感兴趣的:(encodeURI)