µ±web server£¨tomcat£©½ÓÊÕµ½¸ÃÁ´½Óʱ£¬½«»á½øÐÐURL½âÂ룬¼´È¥µô"%"£¬Í¬Ê±°´ÕÕISO8859-1±àÂ루ÉÏÃæÒѾÃèÊö£¬¿ÉÒÔʹÓÃURLEncodingÀ´ÉèÖÃ³ÉÆäËü±àÂ룩ʶ±ð¡£ÉÏÊöÀý×ӵĽá¹û·Ö±ðÊÇ"\ue4\ub8\uad\ue6\u96\u87.html?a=\u4e\u2d\u65\u87"ºÍ"\u4e\u2d\u65\u87.html?a=\u4e\u2d\u65\u87"£¬×¢ÒâǰÕßÇ°ÃæµÄ"ÖÐÎÄ"Á½¸ö×Ö»Ö¸´³ÉÁË6¸ö×Ö·û¡£ÕâÀïÓÃ"\u"£¬±íʾÊÇunicode¡£
ËùÒÔ£¬ÓÉÓÚ¿Í»§¶ËÉèÖõIJ»Í¬£¬ÏàͬµÄÁ´½Ó£¬ÔÚ·þÎñÆ÷Éϵõ½Á˲»Í¬½á¹û¡£Õâ¸öÎÊÌâ²»ÉÙÈ˶¼Óöµ½£¬È´Ã»ÓкܺõĽâ¾ö°ì·¨¡£ËùÒÔÓеÄÍøÕ¾»á½¨ÒéÓû§³¢ÊԹرÕUTF-8Ñ¡Ïî¡£²»¹ý£¬ÏÂÃæ»áÃèÊöÒ»¸ö¸üºÃµÄ´¦Àí°ì·¨¡£
5.2. rewrite
ÊìϤµÄÈ˶¼ÖªµÀ£¬apacheÓÐÒ»¸ö¹¦ÄÜÇ¿´óµÄrewriteÄ£¿é£¬ÕâÀï²»ÃèÊöÆä¹¦ÄÜ¡£ÐèҪ˵Ã÷µÄÊǸÃÄ£¿é»á×Ô¶¯½«URL½âÂ루ȥ³ý%£©£¬¼´Íê³ÉÉÏÊöweb server£¨tomcat£©µÄ²¿·Ö¹¦ÄÜ¡£ÓÐÏà¹ØÎĵµ½éÉÜ˵¿ÉÒÔʹÓÃ[NE]²ÎÊýÀ´¹Ø±Õ¸Ã¹¦ÄÜ£¬µ«ÎÒÊÔÑ鲢δ³É¹¦£¬¿ÉÄÜÊÇÒòΪ°æ±¾£¨ÎÒʹÓõÄÊÇapache 2.0.54£©ÎÊÌâ¡£ÁíÍ⣬µ±²ÎÊýÖк¬ÓÐ"?& "µÈ·ûºÅµÄʱºò£¬¸Ã¹¦Äܽ«µ¼ÖÂϵͳµÃ²»µ½Õý³£½á¹û¡£
rewrite±¾ÉíËÆºõÍêÈ«ÊDzÉÓÃ×Ö½Ú´¦ÀíµÄ·½Ê½£¬¶ø²»¿¼ÂÇ×Ö·û´®µÄ±àÂ룬ËùÒÔ²»»á´øÀ´±àÂëÎÊÌâ¡£
5.3. URLEncode.encode()
ÕâÊÇJava±¾ÉíÌṩ¶ÔµÄURL±àÂ뺯Êý£¬Íê³ÉµÄ¹¤×÷ºÍÉÏÊöUTF-8Ñ¡ÏîÓÐЧʱä¯ÀÀÆ÷Ëù×öµÄ¹¤×÷ÏàËÆ¡£ÖµµÃ˵Ã÷µÄÊÇ£¬javaÒѾ²»Ô޳ɲ»Ö¸¶¨±àÂëÀ´Ê¹Óø÷½·¨£¨deprecated£©¡£Ó¦¸ÃÔÚʹÓõÄʱºòÔö¼Ó±àÂëÖ¸¶¨¡£
µ±²»Ö¸¶¨±àÂëµÄʱºò£¬¸Ã·½·¨Ê¹ÓÃϵͳĬÈϱàÂ룬Õâ»áµ¼ÖÂÈí¼þÔËÐнá¹ûµÃ²»È·¶¨¡£±ÈÈç¶ÔÓÚ"ÖÐÎÄ"£¬µ±ÏµÍ³Ä¬ÈϱàÂëΪ"gb2312"ʱ£¬½á¹ûÊÇ"N-e‡"£¬¶øÄ¬ÈϱàÂëΪ"UTF-8"£¬½á¹ûÈ´ÊÇ"䏿–‡"£¬ºóÐø³ÌÐò½«ÄÑÒÔ´¦Àí¡£ÁíÍ⣬Õâ¶ù˵µÄϵͳĬÈϱàÂëÊÇÓÉÔËÐÐtomcatʱµÄ»·¾³±äÁ¿LC_ALLºÍLANGµÈ¾ö¶¨µÄ£¬Ôø¾³öÏÖ¹ýtomcatÖØÆôºó¾Í³öÏÖÂÒÂëµÄÎÊÌ⣬×îºó²ÅÓôÃÆµÄ·¢ÏÖÊÇÒòΪÐÞ¸ÄÐÞ¸ÄÁËÕâÁ½¸ö»·¾³±äÁ¿¡£
½¨Òéͳһָ¶¨Îª"UTF-8"±àÂ룬¿ÉÄÜÐèÒªÐÞ¸ÄÏàÓ¦µÄ³ÌÐò¡£
5.4. Ò»¸ö½â¾ö·½°¸
ÉÏÃæËµÆð¹ý£¬ÒòΪä¯ÀÀÆ÷ÉèÖõIJ»Í¬£¬¶ÔÓÚͬһ¸öÁ´½Ó£¬web serverÊÕµ½µÄÊDz»Í¬ÄÚÈÝ£¬¶øÈí¼þϵͳÓÐÎÞ·¨ÖªµÀÕâÖмäµÄÇø±ð£¬ËùÒÔÕâÒ»ÐÒéĿǰ»¹´æÔÚȱÏÝ¡£
Õë¶Ô¾ßÌåÎÊÌ⣬²»Ó¦¸Ã½ÄÐÒÈÏΪËùÓпͻ§µÄIEÉèÖö¼ÊÇUTF-8ÓÐЧµÄ£¬Ò²²»Ó¦¸Ã´Ö±©µÄ½¨ÒéÓû§ÐÞ¸ÄIEÉèÖã¬ÒªÖªµÀ£¬Óû§²»¿ÉÄÜÈ¥¼Çסÿһ¸öweb serverµÄÉèÖá£ËùÒÔ£¬½ÓÏÂÀ´µÄ½â¾ö°ì·¨¾ÍÖ»ÄÜÊÇÈÃ×Ô¼ºµÄ³ÌÐò¶àÒ»µãÖÇÄÜ£º¸ù¾ÝÄÚÈÝÀ´·ÖÎö±àÂëÊÇ·ñUTF-8¡£
±È½ÏÐÒÔ˵ÄÊÇUTF-8±àÂëÏ൱ÓйæÂÉ£¬ËùÒÔ¿ÉÒÔͨ¹ý·ÖÎö´«Êä¹ýÀ´µÄÁ´½ÓÄÚÈÝ£¬À´ÅжÏÊÇ·ñÊÇÕýÈ·µÄUTF-8×Ö·û£¬Èç¹ûÊÇ£¬ÔòÒÔUTF-8´¦ÀíÖ®£¬Èç¹û²»ÊÇ£¬ÔòʹÓÿͻ§Ä¬ÈϱàÂ루±ÈÈç"GBK"£©£¬ÏÂÃæÊÇÒ»¸öÅжÏÊÇ·ñUTF-8µÄÀý×Ó£¬Èç¹ûÄãÁ˽âÏàÓ¦¹æÂÉ£¬¾ÍÈÝÒ×Àí½â¡£
public static boolean isValidUtf8(byte[] b,int aMaxCount){
int lLen=b.length,lCharCount=0;
for(int i=0;i<lLen && lCharCount<aMaxCount; lCharCount){
byte lByte=b[i ];//to fast operation, now, ready for the following for(;;)
if(lByte>=0) continue;//>=0 is normal ascii
if(lByte<(byte)0xc0 || lByte>(byte)0xfd) return false;
int lCount=lByte>(byte)0xfc?5:lByte>(byte)0xf8?4
:lByte>(byte)0xf0?3:lByte>(byte)0xe0?2:1;
if(i lCount>lLen) return false;
for(int j=0;j<lCount; j, i) if(b[i]>=(byte)0xc0) return false;
}
return true;
}
ÏàÓ¦µØ£¬Ò»¸öʹÓÃÉÏÊö·½·¨µÄÀý×ÓÈçÏ£º
public static String getUrlParam(String aStr,String aDefaultCharset)
throws UnsupportedEncodingException{
if(aStr==null) return null;
byte[] lBytes=aStr.getBytes("ISO-8859-1");
return new String(lBytes,StringUtil.isValidUtf8(lBytes)?"utf8":aDefaultCharset);
}
²»¹ý£¬¸Ã·½·¨Ò²´æÔÚȱÏÝ£¬ÈçÏÂÁ½·½Ã棺
l ûÓаüÀ¨¶ÔÓû§Ä¬ÈϱàÂëµÄʶ±ð£¬Õâ¿ÉÒÔ¸ù¾ÝÇëÇóÐÅÏ¢µÄÓïÑÔÀ´Åжϣ¬µ«²»Ò»¶¨ÕýÈ·£¬ÒòΪÎÒÃÇÓÐʱºòÒ²»áÊäÈëһЩº«ÎÄ£¬»òÕ߯äËûÎÄ×Ö¡£
l ¿ÉÄÜ»á´íÎóÅжÏUTF-8×Ö·û£¬Ò»¸öÀý×ÓÊÇ"ѧϰ"Á½¸ö×Ö£¬ÆäGBK±àÂëÊÇ" \xd1\xa7\xcf\xb0"£¬Èç¹ûʹÓÃÉÏÊöisValidUtf8·½·¨Åжϣ¬½«·µ»Øtrue¡£¿ÉÒÔ¿¼ÂÇʹÓøüÑϸñµÄÅжϷ½·¨£¬²»¹ý¹À¼ÆÐ§¹û²»´ó¡£
ÓÐÒ»¸öÀý×Ó¿ÉÒÔÖ¤Ã÷googleÒ²Óöµ½ÁËÉÏÊöÎÊÌ⣬¶øÇÒÒ²²ÉÓÃÁ˺ÍÉÏÊöÏàËÆµÄ´¦Àí·½·¨£¬±ÈÈ磬Èç¹ûÔÚµØÖ·À¸ÖÐÊäÈë"http://www.google.com/search?hl=zh-CN&newwindow=1&q=ѧϰ"£¬google½«ÎÞ·¨Õýȷʶ±ð£¬¶øÆäËûºº×ÖÒ»°ãÄܹ»Õý³£Ê¶±ð¡£
×îºó£¬Ó¦¸Ã²¹³ä˵Ã÷һϣ¬Èç¹û²»Ê¹ÓÃrewrite¹æÔò£¬»òÕßͨ¹ý±íµ¥Ìá½»Êý¾Ý£¬Æäʵ²¢²»Ò»¶¨»áÓöµ½ÉÏÊöÎÊÌ⣬ÒòΪÕâʱ¿ÉÒÔÔÚÌá½»Êý¾Ýʱָ¶¨Ï£ÍûµÄ±àÂë¡£ÁíÍ⣬ÖÐÎÄÎļþÃûȷʵ»á´øÀ´ÎÊÌ⣬Ӧ¸Ã½÷É÷ʹÓá£
6. ÆäËü
ÏÂÃæÃèÊöһЩºÍ±àÂëÓÐ¹ØµÄÆäËûÎÊÌâ¡£
6.1. SecureCRT
³ýÁËä¯ÀÀÆ÷ºÍ¿ØÖÆÌ¨Óë±àÂëÓйØÍ⣬һЩ¿Í»§¶ËÒ²ºÜÓйØÏµ¡£±ÈÈçÔÚʹÓÃSecureCRTÁ¬½Ólinuxʱ£¬Ó¦¸ÃÈÃSecureCRTµÄÏÔʾ±àÂ루²»Í¬µÄsession£¬¿ÉÒÔÓв»Í¬µÄ±àÂëÉèÖ㩺ÍlinuxµÄ±àÂë»·¾³±äÁ¿±£³ÖÒ»Ö¡£·ñÔò¿´µ½µÄһЩ°ïÖúÐÅÏ¢£¬¾Í¿ÉÄÜÊÇÂÒÂë¡£
ÁíÍ⣬mysqlÓÐ×Ô¼ºµÄ±àÂëÉèÖã¬Ò²Ó¦¸Ã±£³ÖºÍSecureCRTµÄÏÔʾ±àÂëÒ»Ö¡£·ñÔòͨ¹ýSecureCRTÖ´ÐÐsqlÓï¾äµÄʱºò£¬¿ÉÄÜÎÞ·¨´¦ÀíÖÐÎÄ×Ö·û£¬²éѯ½á¹ûÒ²»á³öÏÖÂÒÂë¡£
¶ÔÓÚUtf-8Îļþ£¬ºÜ¶à±à¼Æ÷£¨±ÈÈç¼Çʱ¾£©»áÔÚÎļþ¿ªÍ·Ôö¼ÓÈý¸ö²»¿É¼ûµÄ±êÖ¾×Ö½Ú£¬Èç¹û×÷ΪmysqlµÄÊäÈëÎļþ£¬Ôò±ØÐëҪȥµôÕâÈý¸ö×Ö·û¡££¨ÓÃlinuxµÄvi±£´æ¿ÉÒÔÈ¥µôÕâÈý¸ö×Ö·û£©¡£Ò»¸öÓÐȤµÄÏÖÏóÊÇ£¬ÔÚÖÐÎÄwindowsÏ£¬´´½¨Ò»¸öÐÂtxtÎļþ£¬ÓüÇʱ¾´ò¿ª£¬ÊäÈë"Á¬Í¨"Á½¸ö×Ö£¬±£´æ£¬ÔÙ´ò¿ª£¬Äã»á·¢ÏÖÁ½¸ö×ÖûÁË£¬Ö»ÁôÏÂÒ»¸öСºÚµã¡£
ÎÄÕÂÕûÀí£ºÎ÷²¿ÊýÂë--רҵÌṩÓòÃû×¢²á¡¢ÐéÄâÖ÷»ú·þÎñ
http://www.west263.com
ÒÔÉÏÐÅÏ¢ÓëÎÄÕÂÕýÎÄÊDz»¿É·Ö¸îµÄÒ»²¿·Ö,Èç¹ûÄúÒª×ªÔØ±¾ÎÄÕÂ,Çë±£ÁôÒÔÉÏÐÅÏ¢£¬Ð»Ð»!


