get 乱码
1 如果通过是get方法-- 请求, 参数会通过url路径 传到服务器,在传到服务器的过程中,已经用iso-8859-1进行编码,服务器接受的数据已经是通过iso-8859-1编码编好的数据码。
URL路径 encode的字符(通过浏览器路径以参数的方式传递后台)一般都是非ASCII码字,数据到了服务器之后,首先服务器会先用iso-8859-1进行解码,服务器获取的数据都是ASCII范围内的请求头字符,
其中请求URL里面带有参数数据,如果是中卫或特殊字符(不是ASCII码字),那么encode后的参数以(编码规则中的十六进制数)通过
修改tomcat的配置文件server.xml:
<Connector URIEncoding="UTF-8"
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
connectionTimeout="20000" disableUploadTimeout="true" />
二
byte [] bs = name.getBytes("ISO8859-1");
1 如果通过是get方法-- 请求, 参数会通过url路径 传到服务器,在传到服务器的过程中,已经用iso-8859-1进行编码,服务器接受的数据已经是通过iso-8859-1编码编好的数据码。
URL路径 encode的字符(通过浏览器路径以参数的方式传递后台)一般都是非ASCII码字,数据到了服务器之后,首先服务器会先用iso-8859-1进行解码,服务器获取的数据都是ASCII范围内的请求头字符,
其中请求URL里面带有参数数据,如果是中卫或特殊字符(不是ASCII码字),那么encode后的参数以(编码规则中的十六进制数)通过
解决方法 一
get问题
<Connector URIEncoding="UTF-8"
port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
connectionTimeout="20000" disableUploadTimeout="true" />
二
byte [] bs = name.getBytes("ISO8859-1");
name = new String(bs,"UTF-8");
post
三
response.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); 页面设置 编码 和读码
1、pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。 就是 页面数据通过这个设置 进行编码
2 contentType="text/html;charset=UTF-8"的作用是指定对服务器响应进行重新编码的编码。 这个是 服务器相应的数据 我以什么解码 来读取数据