posts - 262,  comments - 221,  trackbacks - 0
          02 2010 檔案
          【Java基礎(chǔ)專題】編碼與亂碼(08)---JavaEE防止中文亂碼的設(shè)置      摘要: 良好的編程習(xí)慣,對(duì)編碼和數(shù)據(jù)傳輸流程的清晰認(rèn)識(shí),規(guī)范的配置是確保JavaEE應(yīng)用不會(huì)出現(xiàn)亂碼的三大法寶  閱讀全文
          posted @ 2010-02-24 10:25 Paul Lin 閱讀(4338) | 評(píng)論 (1)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(07)---native2ascii命令的用法      摘要: 可以看到該命令對(duì)于英文字符,數(shù)字不會(huì)轉(zhuǎn)換而是直接輸出,而對(duì)于每個(gè)中文字符則轉(zhuǎn)換成以\u開頭的4個(gè)16進(jìn)制數(shù)字。

          通常情況下,如果要進(jìn)行字符的逆轉(zhuǎn)換,-encoding encoding_name這個(gè)參數(shù)都會(huì)配合-reverse出現(xiàn)。在上面的例子中因?yàn)楸镜叵到y(tǒng)是中文操作系統(tǒng),所以即便沒有指定-encoding也可以正確地從unicode ---》GBK。如果是在英文平臺(tái)下由于默認(rèn)字符集是ISO-8859-1,那么這個(gè)時(shí)候如果不指定則轉(zhuǎn)換出來的將是?了。  閱讀全文
          posted @ 2010-02-23 18:41 Paul Lin 閱讀(893) | 評(píng)論 (0)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(06)---字符的各種值轉(zhuǎn)換      摘要: 可以看到在Java中,字符的unicode有兩種表示顯示:一種是10進(jìn)制形式,一種是16進(jìn)制形式。它們可以分別通過:int i = (int)(string.charAt(i))和Integer.toHexString(i);獲得。而且在java文件和Web頁(yè)面,同一個(gè)unicode的表示形式是不同。web頁(yè)面需要用&#進(jìn)行轉(zhuǎn)義,在java文件中則使用\u進(jìn)行轉(zhuǎn)義。  閱讀全文
          posted @ 2010-02-23 16:48 Paul Lin 閱讀(2127) | 評(píng)論 (2)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換      摘要: 在這個(gè)專題的第一篇文章【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ) 開頭,我們就已經(jīng)介紹了這個(gè)規(guī)則:
          ①得到每個(gè)字符的2進(jìn)制GBK編碼
          ②將該16進(jìn)制的GBK編碼轉(zhuǎn)換成2進(jìn)制的字符串(2個(gè)字節(jié))
          ③分別在字符串的首位插入110,在第9位插入10,在第17位插入10三個(gè)字符串,得到3個(gè)字節(jié)
          ④將這3個(gè)字節(jié)分別轉(zhuǎn)換成16進(jìn)制編碼,得到最終的UTF-8編碼。  閱讀全文
          posted @ 2010-02-22 23:00 Paul Lin 閱讀(37053) | 評(píng)論 (11)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(04)---輸出時(shí)的編碼與亂碼      摘要: 謹(jǐn)慎地使用getBytes(NAME_OF_CHARSET)和new String(bytes, NAME_OF_CHARSET),除非你很清楚的知道原始的字符編碼和傳輸協(xié)議使用的編碼。

          推薦使用基于服務(wù)器的配置、過濾器設(shè)置request/response的characterEncoding、content type屬性。還有就是JSP頁(yè)面的pageEncoding屬性、HTML meta元素的content type屬性。盡量避免頻繁的在代碼中進(jìn)行字符串轉(zhuǎn)碼,即降低了效率又增加了風(fēng)險(xiǎn)  閱讀全文
          posted @ 2010-02-22 17:39 Paul Lin 閱讀(3047) | 評(píng)論 (4)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(03)----String的toCharArray()方法      摘要: 這個(gè)方法再次證明了String的getBytes()方法的危險(xiǎn)性,如果我們使用new String(str.getBytes(), encoding)對(duì)字符串進(jìn)行重新編碼解碼時(shí),我們一定要清楚str.getBytes()方法返回的字節(jié)數(shù)組的長(zhǎng)度、內(nèi)容到底是什么,因?yàn)樵诮酉聛硎褂眯碌膃ncoding進(jìn)行編碼解碼時(shí),Java并不會(huì)自動(dòng)地對(duì)字節(jié)數(shù)組進(jìn)行擴(kuò)展以適應(yīng)新的encoding。而是按照新的編碼方法直接對(duì)該字節(jié)數(shù)組進(jìn)行解析。

          于是結(jié)果就像上面的例子一樣,同樣是4個(gè)原始字節(jié),有些每2個(gè)一組進(jìn)行解析,有些每個(gè)一組進(jìn)行解析,有些每3個(gè)一組進(jìn)行解析。其結(jié)果就只能看那種編碼方式合適了。  閱讀全文
          posted @ 2010-02-22 17:18 Paul Lin 閱讀(7117) | 評(píng)論 (2)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(02)---String的getBytes([encoding])方法      摘要: 不要輕易地使用或?yàn)E用String類的getBytes(encoding)方法,更要盡量避免使用getBytes()方法。因?yàn)檫@個(gè)方法是平臺(tái)依賴的,在平臺(tái)不可預(yù)知的情況下完全可能得到不同的結(jié)果。如果一定要進(jìn)行字節(jié)編碼,則用戶要確保encoding的方法就是當(dāng)初字符串輸入時(shí)的encoding。  閱讀全文
          posted @ 2010-02-22 16:53 Paul Lin 閱讀(4606) | 評(píng)論 (1)  編輯
          【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)      摘要: Unicode到UTF-8的轉(zhuǎn)換:Unicode的16進(jìn)制編碼<-->對(duì)應(yīng)的2進(jìn)制編碼<-->UTF-8規(guī)范的2進(jìn)制編碼<-->UTF-8規(guī)范的16進(jìn)制編碼

          也就是說,假如我們需要從磁盤文件、數(shù)據(jù)庫(kù)記錄、網(wǎng)絡(luò)傳輸一些字符,保存到Java的變量中,要經(jīng)歷由bytes-->encode字符-->Unicode字符的轉(zhuǎn)換(例如new String(bytes, encode));而要把Java變量保存到文件、數(shù)據(jù)庫(kù)或者通過網(wǎng)絡(luò)傳輸,系統(tǒng)要做一個(gè)Unicode字符-->encode字符-->bytes的轉(zhuǎn)換(例如String.getBytes([encode]))  閱讀全文
          posted @ 2010-02-16 23:23 Paul Lin 閱讀(3691) | 評(píng)論 (3)  編輯

          <2010年2月>
          31123456
          78910111213
          14151617181920
          21222324252627
          28123456
          78910111213

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點(diǎn)博客

          好友博客

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 班玛县| 临邑县| 丹阳市| 承德县| 根河市| 皋兰县| 延川县| 靖宇县| 宜宾县| 邢台市| 合阳县| 尼玛县| 阿拉善左旗| 东城区| 松阳县| 闽清县| 兴化市| 苗栗县| 花莲市| 福贡县| 揭阳市| 长泰县| 调兵山市| 双峰县| 龙川县| 公安县| 宝坻区| 久治县| 盱眙县| 台南县| 姜堰市| 云南省| 慈溪市| 镇雄县| 宣化县| 阿鲁科尔沁旗| 南木林县| 成安县| 延吉市| 青州市| 驻马店市|