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中文亂碼之解決方案