1. 程式人生 > >JAVA中文亂碼之解決方案

JAVA中文亂碼之解決方案

can tco con enc 字符 pos 好的 type nco

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