JAVA中文乱码之解决方案

Posted 龙芳伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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”



以上是关于JAVA中文乱码之解决方案的主要内容,如果未能解决你的问题,请参考以下文章

JAVA中文乱码之解决方案

中文乱码之myEclipse项目导入时中文乱码(待)

Java之http请求乱码问题解决

java数据库中文乱码怎么解决

java数据库中文乱码怎么解决

java jar 中文乱码