url中不支持中文传输,在传输之前需要URI编码,在客户端编码后,传输到服务端,需要进行解码,编码和解码的格式需要统一。
浏览器和服务器一般都有默认的编码方式,在传递中文时自动编码和解码。
例如,浏览器的默认编码方式是UTF-8,服务器端的默认编码方式是GB2312,当参数传到服务端时,出现乱码。
在web开发时需要统一编码方式,避免出现中文乱码问题。
客户端可通过js编码,js编码格式只能是utf-8,服务器端可设置默认解码格式。 对于当服务端使用tomcat容器时,需要在Server.xml中添加 URIEncoding="UTF-8”
/apache-tomcat-7.0.61/conf/server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />
参考文章:
前端工程师的编码遭遇战 http://ued.taobao.org/blog/2011/08/encode-war/
时间: 2024-10-29 13:31:22