标签:
1、为什么表单提交中文会出现乱码
当表单提交时,浏览器会对中文参数值进行编码(会使用打开表单所在的页面时的字符集进行编码)
Web服务器在默认的情况下会使用iso-8859-1去解码
编码与解码方式不一致时,就会出现乱码
2、解决POST方式时的乱码问题
step1:确保表单所在的页面按照指定的字符集打开
<meta http-equiv="content-type" content="text/html;charset=utf-8">
step2:在服务器端按照这个编码格式解码即可
request.setCharacterEncoding("utf-8")
添加在读取参数的前面
此方法只针对post请求有效
3、解决get方式时的乱码问题
step1:使用meta确保表单所在页面按指定字符集打开
step2:在服务器端使用如下方式获取参数值
String username=request.getParameter("");
username=new String(("iso-8859-1"),"utf-8");
4、为什么返回的页面会有乱码
编码:将Unicode字符集对应的字节数组转换成某种本地字符集(如UTF-8)对应的字节数组
解码:将某种本地字符集对应的字节数组转换为Unicode字符集对应的字节数组
编码和解码使用的字符集不一致就产生了乱码问题
5、如何解决输出内容的乱码
在获取WriteOut对象及调用out方法之前调用setContentType("text/html;charset=utf-8")
作用:
通知容器,在调用out.println方法输出时,使用指定的字符集
生成消息头中content-type的值,通知浏览器,服务器返回的数据类型和字符集
标签:
原文地址:http://www.cnblogs.com/Crow00/p/4574482.html