标签: 提交一个GET请求 在浏览器地址栏或搜索框输入地址:衣服?keyword=衬衣 其中的中文会被浏览器进行编码
标签:
提交一个GET请求在浏览器地点栏或搜索框输入地点:衣服?keyword=衬衣
此中的中文会被浏览器进行编码,具体编码情况请参考阮大神:关于URL编码
然后,请求需要颠末这些措置惩罚惩罚 1.web server,tomcat在这里tomcat 有这么两个属性
?1.URIEncoding:这个可以强制指定用什么编码措置惩罚惩罚URI,默认是ISO-8859-1;
?2.useBodyEncodingForURI:这个设置为true,我们就可以用request.setCharacterEncoding()来设置编码了. 注:这个属性只影响后面的参数
2.servlet/filter<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter>
这个处所检察源码,只是设置了request的 大专栏 http request GET 乱码分析编码,跟URI没有任何关系
if (this.encoding != null && (this.forceEncoding || request.getCharacterEncoding() == null)) { request.setCharacterEncoding(this.encoding); if (this.forceEncoding) { response.setCharacterEncoding(this.encoding); } }
总结? 颠末上面的分析,提出的解决要领是设置tomcat参数。但是这种解决方案会遇到客户端编码不确定的问题,这样又需要引入编码自动分析,增加了后台的庞大性,,一般的应用都没有太大的这方面须要。所以这里保举在前台使用encodeURIComponent(encodeURIComponent(URI))进行两次编码,并且在后台使用URLDecoder.decode(param, "utf-8")进行解码
http request GET 乱码分析
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/30460.html