乱码解决

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的值,通知浏览器,服务器返回的数据类型和字符集

你可能感兴趣的:(乱码)