JAVA中文乱码之解决方案

1.解决HTML页面的中文问题:为了使HTML页面很好的支持中文,在每个HTML页面的<head>标签内部增加(创建HTML页面自带)

  <head>  

     <meta charset="UTF-8">      

     <title>Insert title here</title>  

  </head>

2.解决jsp页面中的中文问题:pageEncoding是jsp文件本身的编码contentType的charset是指服务器发送给客户端时的内容编码(创建jsp自带)

  <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>

3.解决页面数据传输的中文问题:

最佳方法是web.xml采用编码过滤器来解决,设置一个过滤器,把所有的数据都进行转码 

<!-- 定义编码过滤器 -->

<filter>   

    <filter-name>encodingFilter</filter-name>  

    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>   

   <init-param>    

     <param-name>encoding</param-name>     

     <param-value>UTF-8</param-value>   

   </init-param>

</filter>    

<filter-mapping>   

   <filter-name>encodingFilter</filter-name>  

   <url-pattern>/*</url-pattern>  

</filter-mapping>

4.HTTP(post)请求中的中文乱码  在Servlet页面中 添加               

 response.setCharacterEncoding("UTF-8");(不是太好用,有的浏览器不支持,如谷歌,火狐,QQ.好像360浏览器支持)  

 plain简单类型

 response.setContentType("text/plain;charset=utf-8");

 response.setContentType("text/html;charset=utf-8");

 response.setContentType("text/jsp;charset=utf-8");

5.HTTP(get)请求中的中文乱码问题:

如果是get,需要获取请求的字符串,然后把整个字符串进行转换,同时需要知道原编码,下例假设为 ISO-8859-1 

new String(request.getParamter("param").getBytes("ISO-8859-1","UTF-8");

Mysql数据库中的中文问题:

6.解决Mysql数据库中文问题主要在JDBC驱动的URL上添加:

jdbc:mysql://localhost/test?user=root&password=root&useUnicode=true&characterEncoding=UTF-8

7.解决Oracle中文乱码问题:配置环境变量
NLS_LANG
AMERICAN_AMERICA.ZHS16GBK或者SIMPLIFIED CHINESE_CHINA.ZHS16GBK

8.解决Navicat for MySQL

Navicat连接编码格式改为“Current Windows Codepage”

posted @ 2017-07-26 14:53  龙芳伟  阅读(1337)  评论(0编辑  收藏  举报