å¨ä¸é¢çæè¿°ä¸ï¼å°ä»¥"ä¸æ"两个å为ä¾ï¼ç»æ¥è¡¨å¯ä»¥ç¥éå
¶GB2312ç¼ç æ¯"d6d0 cec4"ï¼Unicodeç¼ç 为"4e2d 6587"ï¼UTFç¼ç å°±æ¯"e4b8ad e69687"ã注æï¼è¿ä¸¤ä¸ªå没æiso8859-1ç¼ç ï¼ä½å¯ä»¥ç¨iso8859-1ç¼ç æ¥"表示"ã
2. ç¼ç åºæ¬ç¥è¯
ææ©çç¼ç æ¯iso8859-1ï¼åasciiç¼ç ç¸ä¼¼ãä½ä¸ºäºæ¹ä¾¿è¡¨ç¤ºåç§åæ ·çè¯è¨ï¼éæ¸åºç°äºå¾å¤æ åç¼ç ï¼éè¦çæå¦ä¸å 个ã
2.1. iso8859-1
å±äºååèç¼ç ï¼æå¤è½è¡¨ç¤ºçå符èå´æ¯0-255ï¼åºç¨äºè±æç³»åãæ¯å¦ï¼åæ¯açç¼ç 为0x61=97ã
å¾ææ¾ï¼iso8859-1ç¼ç 表示çå符èå´å¾çªï¼æ æ³è¡¨ç¤ºä¸æå符ãä½æ¯ï¼ç±äºæ¯ååèç¼ç ï¼å计ç®æºæåºç¡ç表示åä½ä¸è´ï¼æ以å¾å¤æ¶åï¼ä»æ§ä½¿ç¨iso8859-1ç¼ç æ¥è¡¨ç¤ºãèä¸å¨å¾å¤åè®®ä¸ï¼é»è®¤ä½¿ç¨è¯¥ç¼ç ãæ¯å¦ï¼è½ç¶"ä¸æ"两个åä¸åå¨iso8859-1ç¼ç ï¼ä»¥gb2312ç¼ç 为ä¾ï¼åºè¯¥æ¯"d6d0 cec4"两个å符ï¼ä½¿ç¨iso8859-1ç¼ç çæ¶ååå°å®æå¼ä¸º4个åèæ¥è¡¨ç¤ºï¼"d6 d0 ce c4"ï¼äºå®ä¸ï¼å¨è¿è¡åå¨çæ¶åï¼ä¹æ¯ä»¥åè为åä½å¤ççï¼ãèå¦ææ¯UTFç¼ç ï¼åæ¯6个åè"e4 b8 ad e6 96 87"ãå¾ææ¾ï¼è¿ç§è¡¨ç¤ºæ¹æ³è¿éè¦ä»¥å¦ä¸ç§ç¼ç 为åºç¡ã
2.2. GB2312/GBK
è¿å°±æ¯æ±åçå½æ ç ï¼ä¸é¨ç¨æ¥è¡¨ç¤ºæ±åï¼æ¯ååèç¼ç ï¼èè±æåæ¯åiso8859-1ä¸è´ï¼å
¼å®¹iso8859-1ç¼ç ï¼ãå
¶ä¸gbkç¼ç è½å¤ç¨æ¥åæ¶è¡¨ç¤ºç¹ä½ååç®ä½åï¼ègb2312åªè½è¡¨ç¤ºç®ä½åï¼gbkæ¯å
¼å®¹gb2312ç¼ç çã
2.3. unicode
è¿æ¯æç»ä¸çç¼ç ï¼å¯ä»¥ç¨æ¥è¡¨ç¤ºææè¯è¨çå符ï¼èä¸æ¯å®é¿ååèï¼ä¹æååèçï¼ç¼ç ï¼å
æ¬è±æåæ¯å¨å
ãæ以å¯ä»¥è¯´å®æ¯ä¸å
¼å®¹iso8859-1ç¼ç çï¼ä¹ä¸å
¼å®¹ä»»ä½ç¼ç ãä¸è¿ï¼ç¸å¯¹äºiso8859-1ç¼ç æ¥è¯´ï¼uniocodeç¼ç åªæ¯å¨åé¢å¢å äºä¸ä¸ª0åèï¼æ¯å¦åæ¯a为"00 61"ã
éè¦è¯´æçæ¯ï¼å®é¿ç¼ç 便äºè®¡ç®æºå¤çï¼æ³¨æGB2312/GBKä¸æ¯å®é¿ç¼ç ï¼ï¼èunicodeåå¯ä»¥ç¨æ¥è¡¨ç¤ºææå符ï¼æ以å¨å¾å¤è½¯ä»¶å
é¨æ¯ä½¿ç¨unicodeç¼ç æ¥å¤ççï¼æ¯å¦javaã
2.4. UTF
èèå°unicodeç¼ç ä¸å
¼å®¹iso8859-1ç¼ç ï¼èä¸å®¹æå ç¨æ´å¤ç空é´ï¼å 为对äºè±æåæ¯ï¼unicodeä¹éè¦ä¸¤ä¸ªåèæ¥è¡¨ç¤ºãæ以unicodeä¸ä¾¿äºä¼ è¾ååå¨ãå æ¤è产çäºutfç¼ç ï¼utfç¼ç å
¼å®¹iso8859-1ç¼ç ï¼åæ¶ä¹å¯ä»¥ç¨æ¥è¡¨ç¤ºææè¯è¨çå符ï¼ä¸è¿ï¼utfç¼ç æ¯ä¸å®é¿ç¼ç ï¼æ¯ä¸ä¸ªå符çé¿åº¦ä»1-6个åèä¸çãå¦å¤ï¼utfç¼ç èªå¸¦ç®åçæ ¡éªåè½ãä¸è¬æ¥è®²ï¼è±æåæ¯é½æ¯ç¨ä¸ä¸ªåè表示ï¼èæ±å使ç¨ä¸ä¸ªåèã
注æï¼è½ç¶è¯´utfæ¯ä¸ºäºä½¿ç¨æ´å°ç空é´è使ç¨çï¼ä½é£åªæ¯ç¸å¯¹äºunicodeç¼ç æ¥è¯´ï¼å¦æå·²ç»ç¥éæ¯æ±åï¼å使ç¨GB2312/GBKæ çæ¯æèççãä¸è¿å¦ä¸æ¹é¢ï¼å¼å¾è¯´æçæ¯ï¼è½ç¶utfç¼ç 对æ±å使ç¨3个åèï¼ä½å³ä½¿å¯¹äºæ±åç½é¡µï¼utfç¼ç ä¹ä¼æ¯unicodeç¼ç èçï¼å 为ç½é¡µä¸å
å«äºå¾å¤çè±æå符ã
3. java对å符çå¤ç
å¨javaåºç¨è½¯ä»¶ä¸ï¼ä¼æå¤å¤æ¶åå°å符éç¼ç ï¼æäºå°æ¹éè¦è¿è¡æ£ç¡®ç设置ï¼æäºå°æ¹éè¦è¿è¡ä¸å®ç¨åº¦çå¤çã
3.1. getBytes(charset)
è¿æ¯javaå符串å¤ççä¸ä¸ªæ åå½æ°ï¼å
¶ä½ç¨æ¯å°å符串æ表示çå符æç
§charsetç¼ç ï¼å¹¶ä»¥åèæ¹å¼è¡¨ç¤ºã注æå符串å¨javaå
åä¸æ»æ¯æunicodeç¼ç åå¨çãæ¯å¦"ä¸æ"ï¼æ£å¸¸æ
åµä¸ï¼å³æ²¡æé误çæ¶åï¼åå¨ä¸º"4e2d 6587"ï¼å¦æcharset为"gbk"ï¼å被ç¼ç 为"d6d0 cec4"ï¼ç¶åè¿ååè"d6 d0 ce c4"ãå¦æcharset为"utf8"åæåæ¯"e4 b8 ad e6 96 87"ãå¦ææ¯"iso8859-1"ï¼åç±äºæ æ³ç¼ç ï¼æåè¿å "3f 3f"ï¼ä¸¤ä¸ªé®å·ï¼ã
3.2. new String(charset)
è¿æ¯javaå符串å¤ççå¦ä¸ä¸ªæ åå½æ°ï¼åä¸ä¸ä¸ªå½æ°çä½ç¨ç¸åï¼å°åèæ°ç»æç
§charsetç¼ç è¿è¡ç»åè¯å«ï¼æå转æ¢ä¸ºunicodeåå¨ãåèä¸è¿°getBytesçä¾åï¼"gbk" å"utf8"é½å¯ä»¥å¾åºæ£ç¡®çç»æ"4e2d 6587"ï¼ä½iso8859-1æååæäº"003f 003f"ï¼ä¸¤ä¸ªé®å·ï¼ã
å 为utf8å¯ä»¥ç¨æ¥è¡¨ç¤º/ç¼ç ææå符ï¼æ以new String( str.getBytes( "utf8" ), "utf8" ) === strï¼å³å®å
¨å¯éã
3.3. setCharacterEncoding()
该å½æ°ç¨æ¥è®¾ç½®http请æ±æè
ç¸åºçç¼ç ã
对äºrequestï¼æ¯ææ交å
容çç¼ç ï¼æå®åå¯ä»¥éè¿getParameter()åç´æ¥è·å¾æ£ç¡®çå符串ï¼å¦æä¸æå®ï¼åé»è®¤ä½¿ç¨iso8859-1ç¼ç ï¼éè¦è¿ä¸æ¥å¤çãåè§ä¸è¿°"表åè¾å
¥"ãå¼å¾æ³¨æçæ¯å¨æ§è¡setCharacterEncoding()ä¹åï¼ä¸è½æ§è¡ä»»ä½getParameter()ãjava docä¸è¯´æï¼This method must be called prior to reading request parameters or reading input using getReader()ãèä¸ï¼è¯¥æå®åªå¯¹POSTæ¹æ³ææï¼å¯¹GETæ¹æ³æ æãåæåå ï¼åºè¯¥æ¯å¨æ§è¡ç¬¬ä¸ä¸ªgetParameter()çæ¶åï¼javaå°ä¼æç
§ç¼ç åæææçæ交å
容ï¼èåç»çgetParameter()ä¸åè¿è¡åæï¼æ以setCharacterEncoding()æ æãè对äºGETæ¹æ³æ交表åæ¯ï¼æ交çå
容å¨URLä¸ï¼ä¸å¼å§å°±å·²ç»æç
§ç¼ç åæææçæ交å
容ï¼setCharacterEncoding()èªç¶å°±æ æã
对äºresponseï¼åæ¯æå®è¾åºå
容çç¼ç ï¼åæ¶ï¼è¯¥è®¾ç½®ä¼ä¼ éç»æµè§å¨ï¼åè¯æµè§å¨è¾åºå
容æéç¨çç¼ç ã
温馨提示:答案为网友推荐,仅供参考