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

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

          推薦使用基于服務器的配置、過濾器設置request/response的characterEncoding、content type屬性。還有就是JSP頁面的pageEncoding屬性、HTML meta元素的content type屬性。盡量避免頻繁的在代碼中進行字符串轉碼,即降低了效率又增加了風險  閱讀全文
          posted @ 2010-02-22 17:39 Paul Lin 閱讀(3041) | 評論 (4)  編輯
          【Java基礎專題】編碼與亂碼(03)----String的toCharArray()方法      摘要: 這個方法再次證明了String的getBytes()方法的危險性,如果我們使用new String(str.getBytes(), encoding)對字符串進行重新編碼解碼時,我們一定要清楚str.getBytes()方法返回的字節數組的長度、內容到底是什么,因為在接下來使用新的encoding進行編碼解碼時,Java并不會自動地對字節數組進行擴展以適應新的encoding。而是按照新的編碼方法直接對該字節數組進行解析。

          于是結果就像上面的例子一樣,同樣是4個原始字節,有些每2個一組進行解析,有些每個一組進行解析,有些每3個一組進行解析。其結果就只能看那種編碼方式合適了。  閱讀全文
          posted @ 2010-02-22 17:18 Paul Lin 閱讀(7101) | 評論 (2)  編輯
          【Java基礎專題】編碼與亂碼(02)---String的getBytes([encoding])方法      摘要: 不要輕易地使用或濫用String類的getBytes(encoding)方法,更要盡量避免使用getBytes()方法。因為這個方法是平臺依賴的,在平臺不可預知的情況下完全可能得到不同的結果。如果一定要進行字節編碼,則用戶要確保encoding的方法就是當初字符串輸入時的encoding。  閱讀全文
          posted @ 2010-02-22 16:53 Paul Lin 閱讀(4600) | 評論 (1)  編輯
          【Java基礎專題】編碼與亂碼(01)---編碼基礎      摘要: Unicode到UTF-8的轉換:Unicode的16進制編碼<-->對應的2進制編碼<-->UTF-8規范的2進制編碼<-->UTF-8規范的16進制編碼

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

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

          常用鏈接

          留言簿(21)

          隨筆分類

          隨筆檔案

          BlogJava熱點博客

          好友博客

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 昭苏县| 汽车| 论坛| 昌吉市| 淮北市| 什邡市| 平凉市| 兴仁县| 滨州市| 高平市| 社旗县| 黑山县| 鲁山县| 衡水市| 泗阳县| 石河子市| 侯马市| 惠来县| 贵定县| 加查县| 遵化市| 杨浦区| 壶关县| 奉贤区| 永和县| 临江市| 文安县| 休宁县| 土默特左旗| 白河县| 灌阳县| 武义县| 宁波市| 本溪市| 工布江达县| 湖南省| 玉田县| 武隆县| 贡山| 霞浦县| 怀化市|