html 無論是獨立的html
還是其他程序生成的
如Servlet等
注意在最終的html的<head>和</head>之間必須加入meta標簽
用來指定html中輸入字符的編碼
如
<head>
<meta http
equiv=
Content
Type
content=
text/html; charset=gb
>
<title>測試GET && POST
Send</title>
</head>
jsp和servlet 首先必須解決程序輸出(如response
writeln(String s))和接受從客戶端傳來的數據(如request
getParameter(String sname))編碼問題
我們可以利用文件過濾功能
具體需要所用的jsp/servlet容器或者服務器提供的功能設置
如在Tomcat
中可以在webapps/yourAppDirectory/WEB
INF/web
xml中設置如下
<filter>
<filter
name>SetCharsetEncodingFilter</filter
name>
<display
name>SetCharsetEncodingFilter</display
name>
<description>Set CharsetEncoding Filter</description>
<filter
class>m
web
SetCharsetEncodingFilter</filter
class>
<init
param>
<param
name>encoding</param
name>
<param
value>gb
</param
value>
</init
param>
</filter>
<filter
mapping>
<filter
name>SetCharsetEncodingFilter</filter
name>
<url
pattern>/*</url
pattern>
</filter
mapping>
其中SetCharsetEncodingFilter Class就是用來設置request和reponse字符編碼的filter類
其中設置語句如下
request
setCharacterEncoding(targetEncoding);
response
setContentType(
text/html
);
response
setCharacterEncoding(targetEncoding);
另外為了解決通過get(url中帶有參數)方式傳遞參數的亂碼問題
我們還需要設置一下url傳遞參數所需要的編碼
具體在Tomcat
中可以在${Tomcat_home}\conf\server
xml中的<connector>和</connector>之間設置
如下
<!
URIEncoding=
GBK
:Force GET method String(Chinese) can be transferd properly uri
note:Tomcat only support GBK specification
so not set charset gb
>
<Connector URIEncoding=
GBK
port=
redirectPort=
maxSpareThreads=
maxThreads=
minSpareThreads=
>
</Connector>
最後為了解決jsp的亂碼問題
我們還需要作如下處理
即在左右的jsp頭均加上如下指令
<%@ page contentType=
text/html;charset=gb
language=
java
%>
或者
<%@ page pageEncoding=
gb
%>
jdbc和數據庫 關於寫入數據庫和讀取數據庫數據的亂碼問題
可以通過如下方式輕松解決
對於JAVA程序的處理方法按我們指定的方法處理
把數據庫默認支持的編碼格式改為GBK或GB
的
到此
一般來說對於WEB方式的應用來說
中文問題就可以解決了
當然以上方法是根據統一編碼的原則解決的以及WEB方式的文件轉換關系(file
>class
>load
>execute or transfered or response or request)來做的
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28538.html