JavaWeb中文乱码问题

Posted by Johnnwen on June 1, 2016

JavaWeb中文乱码问题

  1. 在JSP页面中输入中文乱码

    请求参页面后不出现乱码:保证<%@ page language=”java” contentType=”text/html; charset=UTF-8” pageEncoding=”UTF-8”%> charset和pageEncoding编码一致,且都支持中文,通常建议取值UTF-8,还需要保证浏览器的字符编码也和JSP的页面编码一致。

  2. 获取中文参数值乱码

    默认参数在传输过程中使用的编码是ISO-8859-1

    1)对于POST请求:只需要在获取请求信息之前(request.getparameter或者是request.getReader),调用request.setCharacterEncoding(“UTF-8”)即可

    2)对于GET请求:前面的方式对于GET无效:可以通过修改Tomcat的server.xml文件的方式。参照http://localhost:8989/docs/config/index.html文档的useBodyEncodingForURl属性,为Connector节点添加useBodyEncodingForURl=“true”属性即可,映射的server.xml也需要相应的修改。还可以做如下编码转化修改:

     String val  = request.getParameter("username");
     String username = new String(val.getBytes("iso-8859-1"),"UTF-8"); 
    

    创建统一的字符编码过滤器

  3. 数据库操作乱码

    只需要如下配置,指定字符的编码、解码格式和页面的编码格式一致

    jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/mydbuseUnicode=true&characterEncoding=utf8