jspä¸æä¹±ç é®é¢
ä½è
: zhangxinzhou å表æ¥æ: 2006-11-24 00:59 æç« å±æ§: åå å¤å¶é¾æ¥
å
³äºjspä¹±ç é®é¢ç解å³ã
1ï¼ æåºæ¬çä¹±ç é®é¢ã
è¿ä¸ªä¹±ç é®é¢æ¯æç®åçä¹±ç é®é¢ãä¸è¬æ°ä¼åºç°ãå°±æ¯é¡µé¢ç¼ç ä¸ä¸è´å¯¼è´çä¹±ç ã
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ page contentType="text/html;charset=iso8859-1"%>
<html>
<head>
<title>ä¸æé®é¢</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
</head>
<body>
ææ¯ä¸ªå¥½äºº
</body>
</html>
ä¸ä¸ªå°æ¹çç¼ç ã
第ä¸ä¸ªå°æ¹çç¼ç æ ¼å¼ä¸ºjspæ件çåå¨æ ¼å¼ãEcljpseä¼æ ¹æ®è¿ä¸ªç¼ç æ ¼å¼ä¿åæ件ã并ç¼è¯jspæ件ï¼å
æ¬éé¢çæ±åã
第äºå¤ç¼ç 为解ç æ ¼å¼ãå 为å为UTF-8çæ件被解ç 为iso8859-1ï¼è¿æ · å¦æä¸æè¯å®åºä¹±ç ãä¹å°±æ¯å¿
é¡»ä¸è´ãè第äºå¤æå¨çè¿ä¸è¡ï¼å¯ä»¥æ²¡æã缺çä¹æ¯ä½¿ç¨iso8859-1çç¼ç æ ¼å¼ãæ以å¦æ没æè¿ä¸è¡çè¯ï¼âææ¯ä¸ªå¥½äººâä¹ä¼åºç°ä¹±ç ãå¿
é¡»ä¸è´æå¯ä»¥ã
第ä¸å¤ç¼ç 为æ§å¶æµè§å¨ç解ç æ¹å¼ãå¦æåé¢ç解ç é½ä¸è´å¹¶ä¸æ 误çè¯ï¼è¿ä¸ªç¼ç æ ¼å¼æ²¡æå
³ç³»ãæçç½é¡µåºç°ä¹±ç ï¼å°±æ¯å 为æµè§å¨ä¸è½ç¡®å®ä½¿ç¨åªç§ç¼ç æ ¼å¼ãå 为页é¢ææ¶åä¼åµå
¥é¡µé¢ï¼å¯¼è´æµè§å¨æ··æ·äºç¼ç æ ¼å¼ãåºç°äºä¹±ç ã
2ï¼ è¡¨å使ç¨Postæ¹å¼æ交åæ¥æ¶å°çä¹±ç é®é¢
è¿ä¸ªé®é¢ä¹æ¯ä¸ä¸ªå¸¸è§çé®é¢ãè¿ä¸ªä¹±ç ä¹æ¯tomcatçå
é¨ç¼ç æ ¼å¼iso8859-1å¨æ£ä¹±ï¼ä¹å°±æ¯è¯´postæ交æ¶ï¼å¦æ没æ设置æ交çç¼ç æ ¼å¼ï¼åä¼ä»¥iso8859-1æ¹å¼è¿è¡æ交ï¼æ¥åçjspå´ä»¥utf-8çæ¹å¼æ¥åã导è´ä¹±ç ãæ¢ç¶è¿æ ·çåå ï¼ä¸é¢æå ç§è§£å³æ¹å¼ï¼å¹¶æ¯è¾ã
Aï¼ æ¥ååæ°æ¶è¿è¡ç¼ç 转æ¢
String str = new String(request.getParameter("something").getBytes("ISO-8859-1"),"utf-8") ï¼ è¿æ ·çè¯ï¼æ¯ä¸ä¸ªåæ°é½å¿
é¡»è¿æ ·è¿è¡è½¬ç ãå¾éº»ç¦ãä½ç¡®å®å¯ä»¥æ¿å°æ±åã
Bï¼ å¨è¯·æ±é¡µé¢ä¸å¼å§å¤ï¼æ§è¡è¯·æ±çç¼ç 代ç ï¼ request.setCharacterEncoding("UTF-8")ï¼ææ交å
容çå符é设为UTFï¼8ãè¿æ ·çè¯ï¼æ¥åæ¤åæ°ç页é¢å°±ä¸å¿
å¨è½¬ç äºãç´æ¥ä½¿ç¨
String str = request.getParameter("something")ï¼å³å¯å¾å°æ±ååæ°ãä½æ¯é¡µé½éè¦æ§è¡è¿å¥è¯ãè¿ä¸ªæ¹æ³ä¹å°±å¯¹postæ交çæææï¼å¯¹äºgetæ交åä¸ä¼ æ件æ¶çenctype="multipart/form-data"æ¯æ æçãç¨åä¸é¢åç¬å¯¹è¿ä¸ªä¸¤ä¸ªçä¹±ç æ
åµåè¿è¡è¯´æã
Cï¼ ä¸ºäºé¿å
æ¯é¡µé½è¦årequest.setCharacterEncoding("UTF-8")ï¼å»ºè®®ä½¿ç¨è¿æ»¤å¨å¯¹ææjsp
è¿è¡ç¼ç å¤çãè¿ä¸ªç½ä¸æå¾å¤ä¾åã请大家èªå·±æ¥é
ã
3ï¼ è¡¨ågetæ交æ¹å¼çä¹±ç å¤çæ¹å¼ã
å¦æ使ç¨getæ¹å¼æ交ä¸æï¼æ¥ååæ°ç页é¢ä¹ä¼åºç°ä¹±ç ï¼è¿ä¸ªä¹±ç çåå ä¹æ¯tomcatçå
é¨ç¼ç æ ¼å¼iso8859-1导è´ãTomcatä¼ä»¥getç缺çç¼ç æ¹å¼iso8859-1对æ±åè¿è¡ç¼ç ï¼ç¼ç å追å å°urlï¼å¯¼è´æ¥å页é¢å¾å°çåæ°ä¸ºä¹±ç /ãã
解å³åæ³ï¼
Aï¼ ä½¿ç¨ä¸ä¾ä¸ç第ä¸ç§æ¹å¼ï¼å¯¹æ¥åå°çå符è¿è¡è§£ç ï¼å转ç ã
Bï¼ Getèµ°çæ¯urlæ交ï¼èå¨è¿å
¥urlä¹åå·²ç»è¿è¡äºiso8859-1çç¼ç å¤çãè¦æ³å½±åè¿ä¸ªç¼ç åéè¦å¨server.xmlçConnectorèç¹å¢å useBodyEncodingForURI="true"
å±æ§é
ç½®ï¼å³å¯æ§å¶tomcat对getæ¹å¼çæ±åç¼ç æ¹å¼ï¼ä¸é¢è¿ä¸ªå±æ§æ§å¶getæ交ä¹æ¯ç¨request.setCharacterEncoding("UTF-8")æ设置çç¼ç æ ¼å¼è¿è¡ç¼ç ãæ以èªå¨ç¼ç 为utf-8ï¼æ¥å页é¢æ£å¸¸æ¥åå°±å¯ä»¥äºãä½æ认为çæ£çç¼ç è¿ç¨æ¯ï¼tomcatåè¦æ ¹æ®
<Connector port="8080"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000" useBodyEncodingForURI="true"
disableUploadTimeout="true" URIEncoding=âUTF-8â/>
éé¢æ设置çURIEncoding=âUTF-8âåè¿è¡ä¸æ¬¡ç¼ç ï¼ä½æ¯ç±äºå·²ç»ç¼ç 为utf-8ï¼åç¼ç ä¹ä¸ä¼æååäºãå¦ææ¯ä»urlè·åç¼ç ï¼æ¥å页é¢åæ¯æ ¹æ®URIEncoding=âUTF-8âæ¥è¿è¡è§£ç çã
4ï¼ ä¸ä¼ æ件æ¶çä¹±ç 解å³
ä¸ä¼ æ件æ¶ï¼form表å设置çé½æ¯enctype="multipart/form-data"ãè¿ç§æ¹å¼ä»¥æµæ¹å¼æ交æ件ãå¦æ使ç¨apachçä¸ä¼ ç»ä»¶ï¼ä¼åç°æå¾å¤ä¹±ç æ³è±¡ãè¿æ¯å 为apachçå
æcommons-fileupload.jaræbugï¼ååºæ±ååè¿è¡è§£ç ï¼å 为è¿ç§æ¹å¼æ交ï¼ç¼ç åèªå¨ä½¿ç¨çæ¯tomcat缺çç¼ç æ ¼å¼iso-8859-1ãä½åºç°çä¹±ç é®é¢æ¯ï¼ å¥å·ï¼éå·ï¼çç¹æ®ç¬¦å·åæäºä¹±ç ï¼æ±åå¦ææ°é为å¥æ°ï¼åä¼åºç°ä¹±ç ï¼å¶æ°å解ææ£å¸¸ã
解å³æ¹å¼ï¼ ä¸è½½commons-fileupload-1.1.1.jar è¿ä¸ªçæ¬çjarå·²ç»è§£å³äºè¿äºbugã
ä½æ¯ååºå
容æ¶ä»ç¶éè¦å¯¹ååºçå符è¿è¡ä»iso8859-1å°utf-8转ç ãå·²ç»è½å¾å°æ£å¸¸æææ±å以åå符ã
5ï¼ Java代ç å
³äºurl请æ±ï¼æ¥ååæ°çä¹±ç
urlçç¼ç æ ¼å¼ï¼åå³äºä¸é¢æ说çURIEncoding=âUTF-8âã å¦æ设å®äºè¿ä¸ªç¼ç æ ¼å¼ï¼åæå³çææå°urlçæ±ååæ°ï¼é½å¿
é¡»è¿è¡ç¼ç æå¯ä»¥ãå¦åå¾å°çæ±ååæ°å¼é½æ¯ä¹±ç ï¼ä¾å¦
ä¸ä¸ªé¾æ¥ Response.sendDerectï¼â/a.jsp?name=å¼ å¤§ç»´âï¼ï¼èå¨a.jspéé¢ç´æ¥ä½¿ç¨
String name = request.getParameterï¼"name"ï¼ï¼å¾å°çå°±æ¯ä¹±ç ãå 为è§å®äºå¿
é¡»æ¯utf-8æå¯ä»¥ï¼æ以ï¼è¿ä¸ªè½¬ååºè¯¥è¿æ ·åï¼
Response.sendDerectï¼â/a.jsp?name=URLEncode.encode(âå¼ å¤§ç»´â,âutf-8â)ï¼æå¯ä»¥ã
å¦æä¸è®¾ç½®è¿ä¸ªåæ°URIEncoding=âUTF-8âï¼ ä¼æä¹æ ·å¢? ä¸è®¾ç½®å就使ç¨äºç¼ºççç¼ç æ ¼å¼iso8859-1ãé®é¢ååºæ¥äºï¼ç¬¬ä¸å°±æ¯åæ°å¼ç个æ°å¦ææ¯å¥æ°ä¸ªæ°ï¼åå°±å¯ä»¥æ£å¸¸è§£æï¼å¦æ使å¶æ°ä¸ªæ°ï¼å¾å°æåå符就æ¯ä¹±ç ãè¿æå°±æ¯å¦ææåä¸ä¸ªå符å¦ææ¯è±æï¼åå°±è½æ£å¸¸è§£æï¼ä½ä¸æçæ ç¹ç¬¦å·ä»åºç°ä¹±ç ãæå®ä¹è®¡ï¼å¦ææ¨çåæ°ä¸æ²¡æä¸ææ ç¹ç¬¦å·ï¼åå¯ä»¥å¨åæ°å¼æåå ä¸ä¸ªè±æ符å·æ¥è§£å³ä¹±ç é®é¢ï¼å¾å°åæ°ååå»æè¿ä¸ªæåé¢ç符å·ãä¹å¯ä»¥åæ使ç¨ã
6ï¼ èæ¬ä»£ç å
³äºurl请æ±ï¼æ¥åå°çåæ°ä¹±ç
èæ¬ä¸ä¹ä¼è¿è¡é¡µé¢è½¬åçæ§å¶ï¼ä¹ä¼æ¶åå°é带åæ°ï¼å¹¶å¨æ¥å页é¢è§£æè¿ä¸ªåæ°çæ
åµãå¦æè¿ä¸ªæ±ååæ°ä¸è¿è¡URIEncoding=âUTF-8âææå®çç¼ç å¤çï¼åæ¥å页é¢æ¥åå°çæ±åä¹æ¯ä¹±ç ãèæ¬å¤çç¼ç æ¯è¾éº»ç¦ï¼å¿
é¡»æç¸åºçç¼ç èæ¬å¯¹åºæ件ï¼ç¶åè°ç¨èæ¬ä¸çæ¹æ³å¯¹æ±åè¿è¡ç¼ç å³å¯ã
7ï¼ å
³äºjspå¨MyEclipseä¸æå¼çä¹±ç é®é¢
对äºä¸ä¸ªå·²ç»åå¨ç项ç®ï¼Jspæ件çåå¨æ ¼å¼å¯è½æ¯utf-8ãå¦ææ°å®è£
çeclipseï¼å缺çæå¼ä½¿ç¨çç¼ç æ ¼å¼é½æ¯iso8859-1ãæ以导è´jspéé¢çæ±ååºç°ä¹±ç ãè¿ä¸ªä¹±ç æ¯è¾å®¹æ解å³ï¼ç´æ¥å°eclipse3.1çå好设置éé¢æ¾å°general-ãedidorï¼è®¾ç½®ä¸ºæ¨çæ件æå¼ç¼ç 为utf-8å³å¯ãEclipseä¼èªå¨éæ°ä»¥æ°çç¼ç æ ¼å¼æå¼ãæ±åå³å¯æ£å¸¸æ¾ç¤ºã
8ï¼ å
³äºhtml页é¢å¨eclipseä¸æå¼åºç°ä¹±ç æ
åµ
ç±äºå¤§é¨å页é¢é½æ¯ç±dreamweaverå¶ä½ï¼å
¶åå¨æ ¼å¼è·eclipseçè¯å«æå·®å«å¯¼è´ã
ä¸è¬è¿ç§æ
åµï¼å¨eclipseä¸æ°å»ºä¸ä¸ªjspï¼ç´æ¥ä»dreamweaverå¤å¶é¡µé¢å
容ç²è´´å°jspå³å¯ã
温馨提示:内容为网友见解,仅供参考