JAVA中文乱码之解决方案

时间:2023-11-23 14:16:02

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”