厦门旅游网站设计,微信开放平台开发者,仿百度 wordpress,有规范问题描述:
使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码.
解决办法:
一, 我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流#xff0c;然后再将其用utf-8解码成字符流,代码如下:
String str new String(…问题描述:
使用SpringMVC参数传递时, 遇到get请求中文信息时,页面应答会显示中文乱码.
解决办法:
一, 我们需要把request.getParameter(“参数名”)获取到的字符串先用ISO-8859-1编码成字节流然后再将其用utf-8解码成字符流,代码如下:
String str new String(request.getParameter(参数名).getBytes(iso-8859-1), utf-8);二, 我们也可以通过Tomcat配置文件设置URL编码集URIEncoding设置编码.
在tomcat的server.xml配置文件中,添加 URIEncoding“UTF-8”
在这里要特别注意:当你用eclipse运行项目文件时,如果改了tomcat安装目录下的server.xml文件依旧不起作用,就要改eclipse自身配置的servers底下的server.xml文件.因为eclipse运行项目时用的是这个server.
如下图所示: 添加 URIEncoding“UTF-8”
Connector connectionTimeout20000 port8080 protocolHTTP/1.1 redirectPort8443/修改为:
Connector URIEncodingUTF-8 connectionTimeout20000 port8080 protocolHTTP/1.1 redirectPort8443/备注:
下面来解释一下这两个属性的意义: useBodyEncodingForURI参数表示是否用request.setCharacterEncoding参数对URL提交的数据和表单中GET方式提交的数据进行重新编码在默认情况下该参数为false。 URIEncoding参数指定对所有GET方式请求进行统一的重新编码解码的编码。 URIEncoding和useBodyEncodingForURI区别是 URIEncoding是对所有GET方式的请求的数据进行统一的重新编码 而useBodyEncodingForURI则是根据响应该请求的页面的request.setCharacterEncoding参数对数据进行的重新编码不同的页面可以有不同的重新编码的编码 配置useBodyEncodingForURItrue后可以解决普通get请求的中文乱码问题但是对于通过ajax发起的get请求中文依然会乱码请把useBodyEncodingForURItrue改为URIEncodingUTF-8即可。