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中文乱码之解决方案的主要内容,如果未能解决你的问题,请参考以下文章