棣???璁蹭?涓???绉?瀛?绗???缂????瑰?:
1. ASCII??
??浠??ラ??锛??ㄨ?$???哄???????????淇℃????缁??借〃绀轰负涓?涓?浜?杩??剁??瀛?绗?覆??姣?涓?涓?浜?杩??朵?(bit)??0??1涓ょ??舵??锛???姝ゅ??涓?浜?杩??朵?灏卞??浠ョ?????56绉??舵??锛?杩?琚?绉颁负涓?涓?瀛???(byte)??涔?灏辨??璇达?涓?涓?瀛???涓??卞??浠ョ?ㄦ?ヨ〃绀?56绉?涓??????舵??锛?姣?涓?涓??舵??瀵瑰?涓?涓?绗??凤?灏辨??256涓?绗??凤?浠?0000000??1111111??
涓?涓?涓?绾?60骞翠唬锛?缇??藉?跺??浜?涓?濂?瀛?绗????锛?瀵硅?辫??瀛?绗??浜?杩??朵?涔??寸???崇郴锛???浜?缁?涓?瑙?瀹???杩?琚?绉颁负ASCII??锛?涓??存部?ㄨ?充???
ASCII??涓??辫?瀹?浜?128涓?瀛?绗???缂???锛?姣?濡?绌烘?尖??SPACE????32(浜?杩???0100000)锛?澶у????瀛?姣?A??65(浜?杩???1000001)??杩?128涓?绗???????32涓?涓??芥???板?烘?ョ???у?剁????锛??????ㄤ?涓?涓?瀛?????????浣?锛??????㈢??1浣?缁?涓?瑙?瀹?涓???
2????ASCII缂???
?辫????28涓?绗??风???灏卞?浜?锛?浣????ㄦ?ヨ〃绀哄?朵?璇?瑷?锛?128涓?绗??锋??涓?澶?????姣?濡?锛??ㄦ?璇?涓?锛?瀛?姣?涓??规??娉ㄩ?崇???凤?瀹?灏辨??娉???SCII??琛ㄧず??浜???锛?涓?浜?娆ф床?藉?跺氨?冲??锛??╃?ㄥ????涓??茬疆????楂?浣?缂??ユ?扮??绗??枫??姣?濡?锛?娉?璇?涓???茅??缂???涓?30(浜?杩???0000010)??杩??蜂??ワ?杩?浜?娆ф床?藉?朵娇?ㄧ??缂???浣?绯伙???浠ヨ〃绀烘??澶?256涓?绗??枫??
浣???锛?杩??????虹?颁??扮????棰???涓??????藉?舵??涓?????瀛?姣?锛???姝わ?????瀹?浠??戒娇??56涓?绗??风??缂????瑰?锛?浠h〃??瀛?姣??翠?涓??枫??姣?濡?锛?130?ㄦ?璇?缂???涓?浠h〃浜?茅锛??ㄥ?浼??ヨ??缂???涓??翠唬琛ㄤ?瀛?姣?Gimel (?)锛??ㄤ?璇?缂???涓???浼?浠h〃???涓?绗??枫??浣???涓?绠℃???凤?????杩?浜?缂????瑰?涓?锛?0??127琛ㄧず??绗??锋??涓??风??锛?涓?涓??风??????128??255??杩?涓?娈点??
?充?浜?娲插?藉?剁????瀛?锛?浣跨?ㄧ??绗??峰氨?村?浜?锛?姹?瀛?灏卞?杈?0涓?宸??炽??涓?涓?瀛??????借〃绀?56绉?绗??凤???瀹???涓?澶???锛?灏卞?椤讳娇?ㄥ?涓?瀛???琛ㄨ揪涓?涓?绗??枫??姣?濡?锛?绠?浣?涓???甯歌???缂????瑰???GB2312锛?浣跨?ㄤ袱涓?瀛???琛ㄧず涓?涓?姹?瀛?锛???浠ョ??璁轰???澶???浠ヨ〃绀?56x256=65536涓?绗??枫??
涓???缂???????棰???瑕?涓???璁ㄨ?猴?杩?绡?绗?璁颁?娑?????杩????????猴??界?堕?芥???ㄥ?涓?瀛???琛ㄧず涓?涓?绗??凤?浣???GB绫荤??姹?瀛?缂???涓???????Unicode??UTF-8??姣????崇郴????
3.Unicode
姝e?涓?涓?????璇达?涓???涓?瀛??ㄧ??澶?绉?缂????瑰?锛???涓?涓?浜?杩??舵?板????浠ヨ?瑙i????涓?????绗??枫????姝わ?瑕??虫??寮?涓?涓???????浠讹?灏卞?椤荤?ラ??瀹???缂????瑰?锛??????ㄩ??璇???缂????瑰?瑙h?伙?灏变??虹?颁贡????涓轰?涔??靛????浠跺父甯稿?虹?颁贡??锛?灏辨????涓哄??淇′汉???朵俊浜轰娇?ㄧ??缂????瑰?涓?涓??枫??
??浠ユ?宠薄锛?濡?????涓?绉?缂???锛?灏?涓???涓???????绗??烽?界撼?ュ?朵腑??姣?涓?涓?绗??烽?界?浜?涓?涓???涓???浜???缂???锛??d?涔辩????棰?灏变?娑?澶便??杩?灏辨??Unicode锛?灏卞??瀹?????瀛??借〃绀虹??锛?杩???涓?绉?????绗??风??缂?????
Unicode褰??舵??涓?涓?寰?澶х??????锛??板?ㄧ??瑙?妯″??浠ュ?圭撼100澶?涓?涓?绗??枫??姣?涓?绗??风??缂????戒?涓??凤?姣?濡?锛?U+0639琛ㄧず?挎??浼?瀛?姣?Ain锛?U+0041琛ㄧず?辫????澶у??瀛?姣?A锛?U+4E25琛ㄧず姹?瀛???涓モ?????蜂???绗??峰?瑰?琛????浠ユ?ヨ??nicode.org锛?????涓??ㄧ??姹?瀛?瀵瑰?琛ㄣ??
4. Unicode????棰?
??瑕?娉ㄦ??????锛?Unicode????涓?涓?绗??烽??锛?瀹???瑙?瀹?浜?绗??风??浜?杩??朵唬??锛??存病??瑙?瀹?杩?涓?浜?杩??朵唬??搴?璇ュ?浣?瀛??ㄣ??
姣?濡?锛?姹?瀛???涓モ????unicode??????杩??舵??E25锛?杞??㈡??浜?杩??舵?拌冻瓒虫??15浣?(100111000100101)锛?涔?灏辨??璇磋?涓?绗??风??琛ㄧず?冲???瑕?2涓?瀛?????琛ㄧず?朵??村ぇ??绗??凤????介??瑕?3涓?瀛???????4涓?瀛???锛????虫?村???
杩???灏辨??涓や釜涓ラ??????棰?锛?绗?涓?涓???棰???锛?濡?浣????藉?哄??unicode??ascii锛?璁$???烘??涔??ラ??涓?涓?瀛???琛ㄧず涓?涓?绗??凤???涓???????琛ㄧず涓?涓?绗??峰???绗?浜?涓???棰???锛???浠?宸茬??ラ??锛??辨??瀛?姣????ㄤ?涓?瀛???琛ㄧず灏卞?浜?锛?濡???unicode缁?涓?瑙?瀹?锛?姣?涓?绗??风?ㄤ?涓?????涓?瀛???琛ㄧず锛??d?姣?涓??辨??瀛?姣????藉??舵??浜??颁?涓?瀛?????0锛?杩?瀵逛?瀛??ㄦ?ヨ?存????澶х??娴?璐癸???????浠剁??澶у?浼???姝ゅぇ?轰?涓???锛?杩?????娉??ュ??????
瀹?浠???????缁?????锛?1)?虹?颁?unicode??澶?绉?瀛??ㄦ?瑰?锛?涔?灏辨??璇存??璁稿?绉?涓?????浜?杩??舵?煎?锛???浠ョ?ㄦ?ヨ〃绀?nicode??2)unicode?ㄥ??夸?娈垫?堕?村????娉??ㄥ箍锛??村?颁???缃????虹?般??
5.UTF-8
浜???缃???????锛?寮虹??瑕?姹??虹?颁?绉?缁?涓???缂????瑰???UTF-8灏辨???ㄤ???缃?涓?浣跨?ㄦ??骞跨??涓?绉?unicode??瀹??版?瑰????朵?瀹??版?瑰?杩?????UTF-16??UTF-32锛?涓?杩??ㄤ???缃?涓??烘??涓??ㄣ????澶?涓???锛?杩??????崇郴??锛?UTF-8??Unicode??瀹??版?瑰?涔?涓???
UTF-8??澶х??涓?涓??圭?癸?灏辨??瀹???涓?绉????跨??缂????瑰???瀹???浠ヤ娇??~4涓?瀛???琛ㄧず涓?涓?绗??凤??规??涓?????绗??疯??????瀛????垮害??
UTF-8??缂???瑙???寰?绠???锛?????浜??★?
1)瀵逛???瀛?????绗??凤?瀛?????绗?涓?浣?璁句负0锛?????浣?涓鸿?涓?绗??风??unicode??????姝ゅ?逛??辫??瀛?姣?锛?UTF-8缂?????ASCII?????稿??????
2)瀵逛?n瀛?????绗???n>1)锛?绗?涓?涓?瀛???????n浣??借?句负1锛?绗?n+1浣?璁句负0锛????㈠????????涓や?涓?寰?璁句负10???╀???娌℃????????浜?杩??朵?锛??ㄩ?ㄤ负杩?涓?绗??风??unicode????
涓?琛ㄦ?荤?浜?缂???瑙???锛?瀛?姣?x琛ㄧず???ㄧ?????浣???
Unicode绗??疯????| UTF-8缂????瑰?
UTF瀛????奥????????????????? (????杩??? |
(浜?杩???
--------------------+---------------------------------------------
涓?涓?瀛??? 0000 0000-0000 007F | 0xxxxxxx
涓や釜瀛??? 0000 0080-0000 07FF | 110xxxxx
10xxxxxx
涓?涓?瀛??? 0000 0800-0000 FFFF | 1110xxxx 10xxxxxx 10xxxxxx
??涓?瀛??? 0001
0000-0010 FFFF | 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
涓???? 杩???浠ユ?瀛???涓モ??涓轰?锛?婕?绀哄?浣?瀹???TF-8缂?????
宸茬?モ??涓モ????unicode??4E25(100111000100101)锛??规??涓?琛????浠ュ????E25澶??ㄧ??涓?琛??????村??(0000 0800-0000
FFFF)锛???姝も??涓モ????UTF-8缂?????瑕?涓?涓?瀛???锛??虫?煎?????1110xxxx 10xxxxxx
10xxxxxx?????跺??锛?浠???涓モ????????涓?涓?浜?杩??朵?寮?濮?锛?渚?娆′???????濉??ユ?煎?涓???x锛?澶??虹??浣?琛???杩??峰氨寰??颁?锛???涓モ????UTF-8缂???????11100100
10111000 10100101??锛?杞??㈡??????杩??跺氨??E4B8A5??
6. Unicode涓?UTF-8涔??寸??杞???
??杩?涓?涓?????渚?瀛?锛???浠ョ???扳??涓モ????Unicode????4E25锛?UTF-8缂?????E4B8A5锛?涓よ????涓?涓??风????瀹?浠?涔??寸??杞??㈠??浠ラ??杩?绋?搴?瀹??般??
??indows骞冲?颁?锛???涓?涓???绠?????杞????规?锛?灏辨??浣跨?ㄥ??缃???璁颁???灏?绋?搴?Notepad.exe????寮???浠跺??锛??瑰?烩????浠垛??????涓?????????涓衡???戒护锛?浼?璺冲?轰?涓?瀵硅??妗?锛??ㄦ??搴??ㄦ??涓?涓???缂???????涓????°??
7. iso8859-1缂???
灞?浜???瀛???缂???锛???澶??借〃绀虹??瀛?绗????存??0-255锛?搴??ㄤ??辨??绯诲????姣?濡?锛?瀛?姣?a??缂???涓??61=97.寰????撅?iso8859-1缂???琛ㄧず??瀛?绗????村?绐?锛???娉?琛ㄧず涓???瀛?绗???浣???锛??变?????瀛???缂???锛???璁$???烘???虹???琛ㄧず??浣?涓??达???浠ュ?澶??跺??锛?浠??т娇??so8859-1缂????ヨ〃绀恒????涓??ㄥ?澶???璁?涓?锛?榛?璁や娇?ㄨ?ョ?????姣?濡?锛??界??涓???"涓や釜瀛?涓?瀛???so8859-1缂???锛?浠?b2312缂???涓轰?锛?搴?璇ユ??"d6d0
cec4"涓や釜瀛?绗??浣跨??so8859-1缂??????跺????灏?瀹???寮?涓?涓?瀛????ヨ〃绀猴?"d6 d0 ce
c4"(浜?瀹?涓?锛??ㄨ?琛?瀛??ㄧ???跺??锛?涔???浠ュ????涓哄??浣?澶?????)????濡?????UTF缂???锛?????6涓?瀛???"e4 b8 ad e6 96
87".寰????撅?杩?绉?琛ㄧず?规?杩???瑕?浠ュ???绉?缂???涓哄?虹???
java瀵瑰??绗???澶???
??ava搴??ㄨ蒋浠朵腑锛?浼???澶?澶?娑????板??绗???缂???锛???浜??版?归??瑕?杩?琛?姝g‘??璁剧疆锛???浜??版?归??瑕?杩?琛?涓?瀹?绋?搴???澶?????
1. getBytes(charset)
杩???java瀛?绗?覆澶?????涓?涓??????芥?帮??朵??ㄦ??灏?瀛?绗?覆??琛ㄧず??瀛?绗?????harset缂???锛?骞朵互瀛????瑰?琛ㄧず??娉ㄦ??瀛?绗?覆??ava??瀛?涓??绘????unicode缂???瀛??ㄧ????姣?濡?"涓???"锛?姝e父???典?(?虫病????璇????跺??)瀛??ㄤ负"4e2d
6587"锛?濡???charset涓?gbk"锛???琚?缂???涓?d6d0 cec4"锛??跺??杩???瀛???"d6 d0 ce
c4".濡???charset涓?utf8"????????"e4 b8 ad e6 96 87".濡?????"iso8859-1"锛????变???娉?缂???锛?????杩??? "3f
3f"(涓や釜??????
java?? .class绫荤??缂???涓猴?unicode;
windows 榛?璁ょ??缂???涓猴?涓???锛?gb2312; ?辨??锛?iso8859;
String str = "寮?涓?" ;
byte[] jiema= str.getBytes("gb2312") ; //瑙g??
String?? bianma = new String(jiema,"UTF-8");//缂??? 濡???涓??㈢??瑙g??涓?瀵????藉?虹?伴??棰?
2. new String(charset)
杩???java瀛?绗?覆澶????????涓??????芥?帮???涓?涓?涓??芥?扮??浣??ㄧ?稿??锛?灏?瀛????扮?????harset缂???杩?琛?缁???璇???锛?????杞???负unicode瀛??ㄣ??????涓?杩?etBytes??渚?瀛?锛?"gbk"
??"utf8"?藉??浠ュ??烘?g‘??缁???"4e2d 6587"锛?浣?iso8859-1????????浜?"003f 003f"(涓や釜??????
??涓?tf8??浠ョ?ㄦ?ヨ〃绀?缂???????瀛?绗????浠?ew String( str.getBytes( "utf8" )锛? "utf8" ) ===
str锛??冲???ㄥ??????
3. setCharacterEncoding()
璇ュ?芥?扮?ㄦ?ヨ?剧疆http璇锋??????稿???缂?????
瀵逛?request锛???????浜ゅ??瀹圭??缂???锛???瀹?????浠ラ??杩?getParameter()???存?ヨ?峰?姝g‘??瀛?绗?覆锛?濡???涓???瀹?锛???榛?璁や娇??so8859-1缂???锛???瑕?杩?涓?姝ュ???????瑙?涓?杩?琛ㄥ??杈???.?煎?娉ㄦ???????ㄦ?ц?setCharacterEncoding()涔???锛?涓??芥?ц?浠讳?getParameter()??java
doc涓?璇存??锛?This method must be called prior to reading request parameters or
reading
input using
getReader()????涓?锛?璇ユ??瀹???瀵?OST?规?????锛?瀵?ET?规???????????????锛?搴?璇ユ???ㄦ?ц?绗?涓?涓?getParameter()???跺??锛?java灏?浼????х???????????????浜ゅ??瀹癸?????缁???getParameter()涓???杩?琛?????锛???浠?etCharacterEncoding()????????瀵逛?GET?规???浜よ〃????锛???浜ょ????瀹瑰??RL涓?锛?涓?寮?濮?灏卞凡缁????х???????????????浜ゅ??瀹癸?setCharacterEncoding()???跺氨??????
瀵逛?response锛???????瀹?杈??哄??瀹圭??缂???锛????讹?璇ヨ?剧疆浼?浼???缁?娴?瑙??????璇?娴?瑙??ㄨ??哄??瀹规?????ㄧ??缂?????
4. 澶???杩?绋?
涓??㈠????涓や釜??浠h〃?х??渚?瀛?锛?璇存??java瀵圭??????抽??棰???澶????规???
4.1. 琛ㄥ??杈???
User input *(gbk锛?d6d0 cec4) browser *(gbk锛?d6d0 cec4) web server
iso8859-1(00d6 00d 000ce 00c4) class锛???瑕???lass涓?杩?琛?澶???锛?getbytes("iso8859-1")涓?6 d0
ce c4锛?new String("gbk")涓?6d0 cec4锛???瀛?涓?浠?nicode缂?????涓?e2d 6587.
l ?ㄦ?疯??ョ??缂????瑰???椤甸?㈡??瀹???缂??????筹?涔????ㄦ?风????浣?绯荤????筹???浠ユ??涓?纭?瀹???锛?涓?渚?浠?bk涓轰???
l 浠?browser??eb
server锛???浠ュ?ㄨ〃??涓???瀹???浜ゅ??瀹规?朵娇?ㄧ??瀛?绗???锛?????浼?浣跨?ㄩ〉?㈡??瀹???缂???????濡?????rl涓??存?ョ??????瑰?杈??ュ???帮????剁???寰?寰?????浣?绯荤???韬???缂???锛???涓鸿??跺??椤甸?㈡???炽??涓?杩颁??т互gbk缂???涓轰???
l Web
server?ユ?跺?扮????瀛???娴?锛?榛?璁ゆ??getParameter)浼?浠?so8859-1缂???澶???涔?锛?缁?????涓?姝g‘??锛???浠ラ??瑕?杩?琛?澶?????浣?濡???棰???璁剧疆浜?缂???(??杩?request.
setCharacterEncoding ())锛????藉??存?ヨ?峰???版?g‘??缁?????
l ?ㄩ〉??腑??瀹?缂?????涓?濂戒???锛????????藉け?绘?у?讹???娉???瀹?姝g‘??缂?????
4.2. ??浠剁?璇?
??璁炬??浠舵??gbk缂???淇?瀛???锛???缂?璇???涓ょ?缂??????╋?gbk????iso8859-1锛???????涓???windows??榛?璁ょ???锛???????linux??榛?璁ょ???锛?褰??朵???浠ュ?ㄧ?璇??舵??瀹?缂?????
Jsp *(gbk锛?d6d0 cec4) java file *(gbk锛?d6d0 cec4) compiler read
uincode(gbk锛? 4e2d 6587锛? iso8859-1锛? 00d6 00d 000ce 00c4) compiler write utf(gbk锛?
e4b8ad e69687锛? iso8859-1锛? *) compiled file unicode(gbk锛? 4e2d 6587锛? iso8859-1锛?
00d6 00d 000ce 00c4) class.??浠ョ??bk缂???淇?瀛?锛?????so8859-1缂?璇???缁?????涓?姝g‘????
class unicode(4e2d 6587) system.out / jsp.out gbk(d6d0 cec4) os console /
browser.
l ??浠跺??浠ヤ互澶?绉?缂????瑰?淇?瀛?锛?涓???windows涓?锛?榛?璁や负ansi/gbk.
l
缂?璇??ㄨ?诲????浠舵?讹???瑕?寰??版??浠剁??缂???锛?濡???????瀹?锛???浣跨?ㄧ郴缁?榛?璁ょ?????涓???class??浠讹???浠ョ郴缁?榛?璁ょ???淇?瀛???锛???浠ョ?璇?涓?浼??洪??棰?锛?浣?瀵逛?jsp??浠讹?濡????ㄤ腑??windows涓?缂?杈?淇?瀛?锛????ㄧ讲?ㄨ?辨??linux涓?杩?琛?/缂?璇?锛???浼??虹?伴??棰?????浠ラ??瑕???sp??浠朵腑??ageEncoding??瀹?缂?????
l Java缂?璇????跺??浼?杞??㈡??缁?涓???unicode缂???澶???锛?????淇?瀛????跺????杞???负utf缂?????
l
褰?绯荤?杈??哄??绗????跺??锛?浼?????瀹?缂???杈??猴?瀵逛?涓???windows涓?锛?System.out灏?浣跨??bk缂???锛???瀵逛?response(娴?瑙???锛???浣跨??sp??浠跺ご??瀹???contentType锛???????浠ョ?存?ヤ负response??瀹?缂????????讹?浼???璇?browser缃?椤电??缂?????濡???????瀹?锛???浼?浣跨??so8859-1缂?????瀵逛?涓???锛?搴?璇ヤ负browser??瀹?杈??哄??绗?覆??缂?????
l
browser?剧ず缃?椤电???跺??锛?棣???浣跨??esponse涓???瀹???缂???(jsp??浠跺ご??瀹???contentType??缁?涔???????esponse涓?)锛?濡???????瀹?锛???浼?浣跨?ㄧ?椤典腑meta椤规??瀹?涓???contentType.
5. ??澶?璁剧疆
瀵逛?web搴??ㄧ?搴?锛???缂??????崇??璁剧疆?????芥?板?涓???
5.1. jsp缂?璇?
??瀹???浠剁??瀛??ㄧ???锛?寰????撅?璇ヨ?剧疆搴?璇ョ疆浜???浠剁??寮?澶淬??渚?濡?锛??????锛?瀵逛?涓???class??浠讹???浠ュ?ㄧ?璇????跺????瀹?缂?????
5.2. jsp杈???
??瀹???浠惰??哄??rowser??浣跨?ㄧ??缂???锛?璇ヨ?剧疆涔?搴?璇ョ疆浜???浠剁??寮?澶淬??渚?濡?锛???璇ヨ?剧疆??response.setCharacterEncoding("GBK")绛?????
5.3. meta璁剧疆
??瀹?缃?椤典娇?ㄧ??缂???锛?璇ヨ?剧疆瀵归????缃?椤靛挨?舵??浣??ㄣ????涓洪????缃?椤垫??娉?????sp??璁剧疆锛???涓?涔???娉??ц?response.setCharacterEncoding()??渚?濡?锛?
濡??????堕???ㄤ?jsp杈??哄??meta璁剧疆涓ょ?缂?????瀹??瑰?锛???jsp??瀹???浼???????涓?sp??瀹????存?ヤ??板??esponse涓???
??瑕?娉ㄦ??????锛?apache??涓?涓?璁剧疆??浠ョ???缂?????瀹???缃?椤垫??瀹?缂???锛?璇ユ??瀹?绛???浜?jsp??缂?????瀹??瑰?锛???浠ヤ?瑕???????缃?椤典腑??meta??瀹?????浠ユ??浜哄缓璁??抽??璇ヨ?剧疆??
5.4. form璁剧疆
褰?娴?瑙??ㄦ??浜よ〃?????跺??锛???浠ユ??瀹??稿???缂?????渚?濡?锛???涓???涓?蹇?涓?浣跨?ㄨ?ヨ?剧疆锛?娴?瑙??ㄤ??存?ヤ娇?ㄧ?椤电??缂?????
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
棣???浠?缁?涓ょ?瀛?绗??? gb2312 ?? gbk
??gb2312 绠?浣?涓???缂???
??gbk??? 涓???瀛?绗???? ????绻?浣?涓???
1. ??瀹?jsp??浠堕????瀹圭????缂????瑰?
pageEncoding="gb2312"%>
2. ??瀹?html??浠堕????瀹圭??缂????瑰?
content="text/html; charset=gb2312" />
3. 褰???搴??ㄦ?风??璇锋??讹?杈??哄?扮?ㄦ?锋?瑙??ㄤ???缂????瑰?
?稿?浜???????浠g??
response.setContentType("text/html; charset=gb2312");
4. ???ㄦ?蜂???杩??ョ?????颁?涓烘??瀹???缂???
request.setCharacterEncoding("gb2312");
5. 瀵规??
request.setCharacterEncoding("gb2312");
//璁剧疆杈??ョ????煎?
response.setContentType("text/html; charset=gb2312");
//璁剧疆杈??虹????煎?
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
涓?涓??充?涓???瀛?绗?浆?㈢??绋?搴?锛?
packagecom.company.util.charset;importsun.io.CharToByteConverter;importsun.io.ByteToCharConverter;importcom.company.util.common.Configure;
public classUnicodeToAscii
{
publicUnicodeToAscii ()
{super();
}
public staticString AsciiToChineseString ( String s )
{if ( s == null)returns;char[] orig =s.toCharArray ();byte[] dest = new byte[ orig.length ];for ( int i = 0; i < orig.length; i++)
dest[ i ]= ( byte ) ( orig[ i ] & 0xFF);try{
ByteToCharConverter toChar= ByteToCharConverter.getConverter ( "gb2312");return newString ( toChar.convertAll ( dest ) );
}catch( Exception e )
{
System.out.println ( e );returns;
}
}
public staticString ChineseStringToAscii ( String s )
{if ( s == null)returns;try{
CharToByteConverter toByte= CharToByteConverter.getConverter ( "gb2312");byte[] orig =toByte.convertAll ( s.toCharArray () );char[] dest = new char[ orig.length ];for ( int i = 0; i < orig.length; i++)
dest[ i ]= ( char ) ( orig[ i ] & 0xFF);return newString ( dest );
}catch( Exception e )
{
System.out.println ( e );returns;
}
}
public static String ChineseStringToAscii ( String s, booleanbl )
{if ( !bl )returns;else
returnChineseStringToAscii ( s );
}
public static String AsciiToChineseString ( String s, booleanbl )
{if ( !bl )returns;else
returnAsciiToChineseString ( s );
}
public staticString getFirstCharOfString ( String str )
{
String firstChar= "*";if ( str == null || str.length () <= 0)returnfirstChar;try{byte firstCharBytes[] = new byte[ 2];intgbcode;
firstCharBytes[0 ] = str.getBytes ( "gb2312" )[ 0];
gbcode= firstCharBytes[ 0 ] & 0x000000ff;if ( str.length () > 1 || gbcode >= 0xb0)
{
firstCharBytes[1 ] = str.getBytes ( "gb2312" )[ 1];
gbcode= ( firstCharBytes[ 0 ] & 0x000000ff ) * 0x100 + ( firstCharBytes[ 1 ] & 0x000000ff);
}if ( gbcode >= 0xb0a1 && gbcode <= 0xb0c4)
firstChar= "a";else if ( gbcode >= 0xb0c5 && gbcode <= 0xb2c0)
firstChar= "b";else if ( gbcode >= 0xb2c1 && gbcode <= 0xb4ed)
firstChar= "c";else if ( gbcode >= 0xb4ee && gbcode <= 0xb6e9)
firstChar= "d";else if ( gbcode >= 0xb6ea && gbcode <= 0xb7a1)
firstChar= "e";else if ( gbcode >= 0xb7a2 && gbcode <= 0xb8c0)
firstChar= "f";else if ( gbcode >= 0xb8c1 && gbcode <= 0xb9fd)
firstChar= "g";else if ( gbcode >= 0xb9fe && gbcode <= 0xbbf6)
firstChar= "h";else if ( gbcode >= 0xbbf7 && gbcode <= 0xbfa5)
firstChar= "j";else if ( gbcode >= 0xbfa6 && gbcode <= 0xc0ab)
firstChar= "k";else if ( gbcode >= 0xc0ac && gbcode <= 0xc2e7)
firstChar= "l";else if ( gbcode >= 0xc2e8 && gbcode <= 0xc4c2)
firstChar= "m";else if ( gbcode >= 0xc4c3 && gbcode <= 0xc5b5)
firstChar= "n";else if ( gbcode >= 0xc5b6 && gbcode <= 0xc5bd)
firstChar= "o";else if ( gbcode >= 0xc5be && gbcode <= 0xc6d9)
firstChar= "p";else if ( gbcode >= 0xc6da && gbcode <= 0xc8ba)
firstChar= "q";else if ( gbcode >= 0xc8bb && gbcode <= 0xc8f5)
firstChar= "r";else if ( gbcode >= 0xc8f6 && gbcode <= 0xcbf9)
firstChar= "s";else if ( gbcode >= 0xcbfa && gbcode <= 0xcdd9)
firstChar= "t";else if ( gbcode >= 0xcdda && gbcode <= 0xcef3)
firstChar= "w";else if ( gbcode >= 0xcef4 && gbcode <= 0xd1b8)
firstChar= "x";else if ( gbcode >= 0xd1b9 && gbcode <= 0xd4d0)
firstChar= "y";else if ( gbcode >= 0xd4d1 && gbcode <= 0xd7f9)
firstChar= "z";elsegbcode= firstCharBytes[ 0];if ( gbcode >= 'A' && gbcode <= 'Z')
gbcode+= 32;if ( gbcode >= 'a' && gbcode <= 'z')
firstChar= String.valueOf ( ( char) gbcode );
}catch( Exception e )
{
System.out.println ("getFirstCharOfString Exception: " +e.getMessage () );
}returnfirstChar;
}
}
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
?????e?ヨ?芥???板?轰腑????璇存??瑙g??缂???姝g‘
String str = values[i];
System.out.println("1:" + new
String(str.getBytes("GBK"),"ISO8859_1"));
System.out.println("2:"
+new String(str.getBytes("GBK"),"utf-8"));
System.out.println("3:" +new
String(str.getBytes("GBK"),"GB2312"));
System.out.println("4:"
+new String(str.getBytes("GBK"),"GBK"));
System.out.println("5:"
+new String(str.getBytes("ISO8859_1"),"GBK"));
System.out.println("6:" +new
String(str.getBytes("ISO8859_1"),"ISO8859_1"));
System.out.println("7:" +new
String(str.getBytes("ISO8859_1"),"GB2312"));
System.out.println("8:" +new
String(str.getBytes("ISO8859_1"),"utf-8"));
System.out.println("9:" +new
String(str.getBytes("utf-8"),"GBK"));
System.out.println("10:"
+new String(str.getBytes("utf-8"),"utf-8"));
System.out.println("11:" +new
String(str.getBytes("utf-8"),"GB2312"));
System.out.println("12:"
+new String(str.getBytes("utf-8"),"ISO8859_1"));
System.out.println("13:" +new
String(str.getBytes("GB2312"),"GB2312"));
System.out.println("14:" +new
String(str.getBytes("GB2312"),"ISO8859_1"));
System.out.println("15:" +new
String(str.getBytes("GB2312"),"utf-8"));
System.out.println("16:"
+new String(str.getBytes("GB2312"),"GBK"));
????锛?