链接编码 - 带汉字
前提:
进行搜索的时候,我们时常会将搜素条件放在链接后面,这样会导致编码问题,从链接中获取的并不是你想要的汉字
解决方案:
在原页面中,对链接进行编码,而且是进行两次编码:encodeURI(encodeURI(string类型));
在另一个页面进行解码:decodeURI(string类型)
疑问:
为什么要进行两次编码,因为服务器端默认会编码一次
注意:encodeURI该方法不会对 ASCII 字母和数字进行编码,也不会对这些 ASCII 标点符号进行编码: - _ . ! ~ * ' ( ) 。
该方法的目的是对 URI 进行完整的编码,因此对以下在 URI 中具有特殊含义的 ASCII 标点符号,encodeURI() 函数是不会进行转义的:;/?:@&=+$,#
如果 URI 组件中含有分隔符,比如 ? 和 #,则应当使用 encodeURIComponent() 方法分别对各组件进行编码。