02 2010 檔案
【Java基礎(chǔ)專題】編碼與亂碼(08)---JavaEE防止中文亂碼的設(shè)置
摘要: 良好的編程習(xí)慣,對(duì)編碼和數(shù)據(jù)傳輸流程的清晰認(rèn)識(shí),規(guī)范的配置是確保JavaEE應(yīng)用不會(huì)出現(xiàn)亂碼的三大法寶 閱讀全文
【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)換出來的將是?了。 閱讀全文
通常情況下,如果要進(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)換出來的將是?了。 閱讀全文
【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)義。 閱讀全文
【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編碼。 閱讀全文
①得到每個(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編碼。 閱讀全文
【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) 閱讀全文
推薦使用基于服務(wù)器的配置、過濾器設(shè)置request/response的characterEncoding、content type屬性。還有就是JSP頁(yè)面的pageEncoding屬性、HTML meta元素的content type屬性。盡量避免頻繁的在代碼中進(jìn)行字符串轉(zhuǎn)碼,即降低了效率又增加了風(fēng)險(xiǎn) 閱讀全文
【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é)果就只能看那種編碼方式合適了。 閱讀全文
于是結(jié)果就像上面的例子一樣,同樣是4個(gè)原始字節(jié),有些每2個(gè)一組進(jìn)行解析,有些每個(gè)一組進(jìn)行解析,有些每3個(gè)一組進(jìn)行解析。其結(jié)果就只能看那種編碼方式合適了。 閱讀全文
【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。 閱讀全文
【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])) 閱讀全文
也就是說,假如我們需要從磁盤文件、數(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])) 閱讀全文
| |||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
31 | 1 | 2 | 3 | 4 | 5 | 6 | |||
7 | 8 | 9 | 10 | 11 | 12 | 13 | |||
14 | 15 | 16 | 17 | 18 | 19 | 20 | |||
21 | 22 | 23 | 24 | 25 | 26 | 27 | |||
28 | 1 | 2 | 3 | 4 | 5 | 6 | |||
7 | 8 | 9 | 10 | 11 | 12 | 13 |
常用鏈接
留言簿(21)
隨筆分類
- J2EE 框架(9)
- J2EE基礎(chǔ)(4)
- J2SE(43)
- Java 工具(5)
- Oracle Concept(4)
- Oracle SQL/PLSQL(9)
- Oracle 開發(fā)(13)
- Oracle 管理(4)
- Oracle 調(diào)優(yōu)
- Oracle 錯(cuò)誤診斷
- RoR(19)
- UML(3)
- Unix / Linux(13)
- Web基礎(chǔ)(19)
- 其它技術(shù)(7)
- 感悟(3)
- 雜項(xiàng)(7)
- 架構(gòu)與性能(8)
- 模式與重構(gòu)(19)
- 灌水(8)
- 電影與音樂(16)
- 走過的路(1)
- 軟件過程與軟件方法(3)
- 陽(yáng)光戶外(2)
- 項(xiàng)目管理(36)
隨筆檔案
- 2012年2月 (3)
- 2011年11月 (4)
- 2011年10月 (1)
- 2011年9月 (2)
- 2011年8月 (2)
- 2011年7月 (5)
- 2011年6月 (3)
- 2011年5月 (1)
- 2011年4月 (1)
- 2011年3月 (3)
- 2011年1月 (1)
- 2010年12月 (1)
- 2010年11月 (5)
- 2010年10月 (3)
- 2010年9月 (1)
- 2010年7月 (1)
- 2010年6月 (1)
- 2010年5月 (4)
- 2010年4月 (9)
- 2010年3月 (19)
- 2010年2月 (8)
- 2010年1月 (3)
- 2009年12月 (34)
- 2009年11月 (1)
- 2009年10月 (2)
- 2009年7月 (4)
- 2009年6月 (5)
- 2009年5月 (3)
- 2009年4月 (2)
- 2009年3月 (1)
- 2009年2月 (5)
- 2009年1月 (5)
- 2008年12月 (13)
- 2008年11月 (4)
- 2008年10月 (1)
- 2008年9月 (6)
- 2008年8月 (5)
- 2008年7月 (3)
- 2008年6月 (31)
- 2008年5月 (10)
- 2008年4月 (9)
- 2008年3月 (7)
- 2008年2月 (4)
- 2008年1月 (19)
BlogJava熱點(diǎn)博客
好友博客
搜索
最新評(píng)論

- 1.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
- 666666666666666666666這幾天正在做個(gè)類似工程編碼出現(xiàn)錯(cuò)誤
- --李
- 2.?re: 【Java基礎(chǔ)專題】IO與文件讀寫---使用Apache commons IO簡(jiǎn)化文件讀寫
- 不錯(cuò)
- --阿斯蘭
- 3.?re: 【Java基礎(chǔ)專題】編碼與亂碼(03)----String的toCharArray()方法
- 多謝分享
- --thx
- 4.?re: 【Java基礎(chǔ)專題】編碼與亂碼(05)---GBK與UTF-8之間的轉(zhuǎn)換
- 評(píng)論內(nèi)容較長(zhǎng),點(diǎn)擊標(biāo)題查看
- --karl
- 5.?re: 【Java基礎(chǔ)專題】編碼與亂碼(01)---編碼基礎(chǔ)[未登錄]
- 謝謝,幫了我大忙!
- --小龍