銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨

銆愯浆杞姐€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨

1. 闈欐€侀〉闈㈢殑涔辩爜闂
鏂囦欢鐨勭紪鐮佸拰娴忚鍣ㄨ鏄剧ず鐨勭紪鐮佷笉涓€鑷淬€?/span>
1) 妫€鏌ユ枃浠跺師濮嬬殑缂栫爜, 鍙互鐢ㄨ浜嬫湰鎵撳紑, 鐒跺悗閫夋嫨鍙﹀瓨涓烘潵鐪?
2) 缁欏綋鍓嶉〉闈㈠姞鍏ヤ竴涓寚浠ゆ潵寤鸿娴忚鍣ㄧ敤鎸囧畾鐨勭紪鐮佹潵鏄剧ず鏂囦欢瀛楃鍐呭.

Html浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. <metahttp-equiv="content-type"content="text/html;聽charset=GBK">聽聽
<meta http-equiv="content-type" content="text/html; charset=GBK">


2. JSP 椤甸潰鐨勪贡鐮侀棶棰?/strong>
1) page 鎸囦护鏈変釜 pageEncoding="GBK" 杩欎釜浼氭寚瀹氬綋鍓嶉〉闈繚瀛樼殑缂栫爜, 濡傛灉鍐欐垚ISO8859-1 灏变笉鑳戒繚瀛樻眽瀛?
2) page 鎸囦护鐨?contentType="text/html; charset=ISO8859-1" 涔熶細鍍忛潤鎬侀〉闈竴鏍疯娴忚鍣ㄦ潵浼樺厛閫夋嫨涓€绉嶇紪鐮?
濡傛灉JSP 涔辩爜鐨勮瘽,涓€鑸氨鏄剧ず鎴?锛岃€屼笖涓嶇浣犵粰娴忚鍣ㄩ€変粈涔堟牱鐨勭紪鐮侊紝瀹冮兘涓嶈兘姝g‘鏄剧ず


3. 琛ㄥ崟鎻愪氦鐨勪贡鐮侀棶棰?Tomcat 鐗规湁)
1). POST 鐨勪贡鐮?/strong>

a. 棣栧厛娴忚鍣ㄦ彁浜よ〃鍗曠殑缂栫爜鏄牴鎹〃鍗曟墍鍦ㄩ〉闈㈡潵鍐冲畾鐨? 鑰屼笉鏄牴鎹彁浜ゅ悗鐨凧SP 椤甸潰鐨勭紪鐮佹潵鍐冲畾鐨? 鎶婃墍鏈夌殑椤甸潰鐨勭紪鐮侀兘璁剧疆鎴愪竴鏍风殑,渚嬪 GBK.
b. 澶勭悊鏂瑰紡灏辨槸鍦ㄨ幏鍙栧弬鏁颁箣鍓嶈缃紪鐮?
request.setCharacterEncoding("GBK");
c. 鍙互鐢ㄨ繃婊ゅ櫒鐨勬柟寮忔潵瑙e喅, Tomcat 宸茬粡甯︿簡涓€涓幇鎴愮殑:
apache-tomcat-5.5.23\webapps\jsp-examples\WEB-INF\classes\filters\SetCharacter
EncodingFilter.java
web.xml

Xml浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. <filter>聽聽
  2. <filter-name>Set聽Character聽Encoding</filter-name>聽聽
  3. <filter-class>filters.SetCharacterEncodingFilter</filter-class>聽聽
  4. <init-param>聽聽
  5. <param-name>encoding</param-name>聽聽
  6. <param-value>GBK</param-value>聽聽
  7. </init-param>聽聽
  8. </filter>聽聽
  9. <filter-mapping>聽聽
  10. <filter-name>Set聽Character聽Encoding</filter-name>聽聽
  11. <url-pattern>/*</url-pattern>聽聽
  12. </filter-mapping>聽聽
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2) GET 鏂瑰紡鐨勪贡鐮?/strong>

a.鎵嬪姩杞爜锛?/strong>鐢?setCharacterEncoding() 涓嶈兘瑙e喅. TOMCAT 鐨勪竴涓狟UG, GET 鏂瑰紡浼犻€佺殑琛ㄥ崟鍙傛暟鎬绘槸鐢ㄧ殑 ISO8859-1 缂栫爜. 鎴戜滑瑕佹妸瀹冭浆鎴?GBK 鏂瑰紡.

Java浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. String聽username聽=聽request.getParameter("username"); 聽聽
  2. System.out.println(username); 聽聽
  3. //聽杞爜,聽鍏堝彇寰楀師濮嬬殑浜岃繘鍒跺瓧鑺傛暟缁?聽聽
  4. byte[]聽data聽=聽username.getBytes("ISO8859-1"); 聽聽
  5. //聽鏍规嵁鏂扮殑瀛楃闆嗗啀鏋勯€犳柊鐨勫瓧绗︿覆 聽聽
  6. username聽=聽new聽String(data,聽"GBK");聽聽
String username = request.getParameter("username");
System.out.println(username);
// 杞爜, 鍏堝彇寰楀師濮嬬殑浜岃繘鍒跺瓧鑺傛暟缁?
byte[] data = username.getBytes("ISO8859-1");
// 鏍规嵁鏂扮殑瀛楃闆嗗啀鏋勯€犳柊鐨勫瓧绗︿覆
username = new String(data, "GBK");

聽b.閰嶇疆tomcat锛坖ava web椤圭洰甯哥敤鐨勬湇鍔″櫒锛夌殑閾炬帴缂栫爜

鍦↗sp鐨勯〉闈腑閫氳繃瓒呴摼鎺ヤ紶鍙傛暟锛屼緥濡傦細<a href="ss.jsp?userName=zhangsan"></a> 鎺ユ敹鍒扮殑鍙傛暟涓轰贡鐮併€?span style="background-color: #ff0000;">瑙e喅鍔炴硶锛氬湪tomcat瀹夎鐩綍涓嬶紝鎵惧埌conf鐩綍锛屾墦寮€璇ョ洰褰曚笅鐨剆erver.xml鏂囦欢锛屾寜鐓т笅闈㈢殑浠g爜杩涜閰嶇疆锛岀孩鑹查儴鍒嗕负瑕佹坊鍔犵殑鍐呭锛屽皢鍏舵坊涓婂嵆鍙細

Xml浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. <Connectorport="8090"protocol="HTTP/1.1"聽 聽聽
  2. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽connectionTimeout="20000"聽 聽聽
  3. 聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽redirectPort="8443"URIEncoding="UTF-8"/>聽聽
<Connector port="8090" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" URIEncoding="UTF-8"/>

聽4.瑙e喅鍝嶅簲涔辩爜锛?/span>

鎵€璋撳搷搴斾腑鐨勪贡鐮侊紝灏辨槸鏄剧ず椤甸潰涓婄殑涔辩爜锛屽洜涓洪〉闈㈡暟鎹槸浠庢湇鍔″櫒涓€绔斁鍏ュ搷搴旓紙response锛変腑锛岀劧鍚庡彂閫佺粰娴忚鍣紝濡傛灉鍝嶅簲涓殑鏁版嵁鏃犳硶琚甯歌В鏋愶紝灏变細鍑虹幇涔辩爜闂銆?/p>

鍦╤ttp鐨勫搷搴旓紙response锛変腑娣诲姞缂栫爜淇℃伅锛屼娇鐢ㄥ涓嬫柟寮忥細

Html浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. <%@聽page聽contentType="text/html;聽charset=gb2312"%>聽聽
<%@ page contentType="text/html; charset=gb2312"%>

杩欐瑕佹斁鍦╦sp椤甸潰鐨勭涓€琛岋紝鐢ㄦ潵鎸囧畾鍝嶅簲鐨勭被鍨嬪拰缂栫爜鏍煎紡锛宑ontentType涓簍ext/html灏辨槸html鍐呭锛宑harset琛ㄧず缂栫爜涓篻b2312銆傝繖鏍锋祻瑙堝櫒灏卞彲浠ヤ粠鍝嶅簲涓幏寰楃紪鐮佹牸寮忎簡銆?/p>

鍦╤tml涓寚瀹氱紪鐮佹牸寮忋€?/p>

Html浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. <head>聽聽
  2. <metahttp-equiv="Content-Type"content="text/html;聽charset=gb2312"/>聽聽
  3. <title>title</title>聽聽
  4. </head>聽聽
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
 <title>title</title>
</head>

聽鍦⊿ervlet涓寚瀹氱紪鐮佹牸寮忥細

Java浠g爜 銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨銆愯浆杞妹€憌eb寮€鍙戜腑鐨勪贡鐮佹€荤粨
  1. response.setCharacterEncoding()聽聽聽
response.setCharacterEncoding() 

闄勶細JSP涓殑缂栫爜璁剧疆

1. pageEncoding:<%@ page pageEncoding="UTF-8"%> 璁剧疆JSP缂栬瘧鎴怱ervlet鏃朵娇鐢ㄧ殑缂栫爜

2. contentType: <%@ page contentType="text/html; charset=UTF-8"%> 瀵规湇鍔″櫒鍝嶅簲杩涜閲嶆柊缂栫爜锛屽嵆jsp鐨勮緭鍑烘祦鍦ㄦ祻瑙堝櫒涓樉绀虹殑缂栫爜

3. html椤甸潰charset:

<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> 缃戦〉鐨勭紪鐮佷俊鎭?锛岃鏄庨〉闈㈠埗浣滄墍浣跨敤鐨勭紪鐮?/p>

4. request.setCharacterEncoding() -- 鍙敤鍦╯ervlet鍜宩sp椤甸潰涓?浣滅敤鏄缃瀹㈡埛绔姹傝繘琛岄噸鏂扮紪鐮佺殑缂栫爜锛屽嵆post鏂瑰紡鎻愪氦鐨勬暟鎹繘琛岀紪鐮併€?/p>

5. response.setCharacterEncoding() -- 鍙敤鍦╯ervlet鍜宩sp椤甸潰涓?瀵规湇鍔″櫒鍝嶅簲杩涜閲嶆柊缂栫爜锛屽嵆jsp鐨勮緭鍑烘祦鍦ㄦ祻瑙堝櫒涓樉绀虹殑缂栫爜锛?/p>

涓?span class="tag"><%@ page contentType="text/html;charset=UTF-8"%>涓€鏍?/span>

6. response.setContentType() -- 鍙敤鍦╯ervlet鍜宩sp椤甸潰涓?瀵规湇鍔″櫒鍝嶅簲杩涜閲嶆柊缂栫爜锛屽嵆jsp鐨勮緭鍑烘祦鍦ㄦ祻瑙堝櫒涓樉绀虹殑缂栫爜锛屼笌<%@ page contentType="text/html;charset=UTF-8"%>涓€鏍枫€傚锛歳esponse.setContentType("text/html;charset=GBK");

7.response.setHeader("Content-Type","text/html;charset=UTF-8"); -- 鍙敤鍦╯ervlet鍜宩sp椤甸潰涓€俽esponse.setHeader 鏄敤鏉ヨ缃繑鍥為〉闈㈢殑澶?meta 淇℃伅, 浣跨敤鏃?response.setHeader( name, contect );

涓?lt;META http-equiv="Content-Type" content="text/html; charset=UTF-8">涓€鏍?/span>