paulwong

          My Links

          Blog Stats

          常用鏈接

          留言簿(66)

          隨筆分類(1387)

          隨筆檔案(1145)

          文章分類(7)

          文章檔案(10)

          相冊

          收藏夾(2)

          AI

          Develop

          E-BOOK

          Other

          養生

          微服務

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          關于特殊字符的一些總結

          最近做一個項目,里面很多特殊字符,引發了一些問題,解決后很開心,特別來分享。
          特殊字符:
          Jörg Ranau
          Sigut? Jakštonyt?
          Côte d'Ivoire

          數據庫手工導入數據
          1. 先檢查數據庫的字符集和客戶端字符集是否一致。 采用的是UTF8 查看語句:
            select * from nls_database_parameters

          2.  若是采用DOS 下的SQLPLUS 導入數據,需要
            set NLS_LANG=AMERICAN_AMERICA.UTF8
            windows:    
            set NLS_LANG=AMERICAN_AMERICA.UTF8
            unix:    NLS_LANG
            =AMERICAN_AMERICA.UTF8

          3. 檢查導入的數據的文件格式,格式采用: UTF8 without BOM, 
            可以用NOTEPAD++, CONVER TO UTF8 without BOM
            也可以用txt , 轉換成UTF8.
            第3點非常重要,之前忽略了,發現插入導入數據庫后,數據顯示不對。 驗證你導入的數據是否正確可以用ORACLE DUMP 命令。
            select dump(country_desc),country_desc  from tb_test  where testcode='1';
            Typ=1 Len=14: 67,195,180,116,101,32,100,39,73,118,111,105,114,101        Côte d'Ivoie
          數據庫腳本中遇到特殊字符:

          1. 單引號‘ , oracle 腳本需要寫成 兩個單引號
          2. 特殊字符&, oracle 表示需要的參數, 若是數據中有這個有2個方法:
            第1 種:
            set define off;
            第2種:
            set escape on;

            然后將所有的&, 替換成/&。
          3. 空行
            用<br> 代替。
          JAVA 代碼導入數據:

          要導入的數據都放在TXT 類型的文件里,通過batch job 導入數據庫。
          檢查導入的數據的文件格式,格式采用: UTF8 without BOM,  可以用NOTEPAD++, CONVER TO UTF8 without BOM

          java 代碼:

          1: 讀文件
          InputStreamReader read = new InputStreamReader (new FileInputStream(file),"UTF-8");
          BufferedReader inBuf
          =new BufferedReader(read); 

          2: 檢查所用開發工具的文件ENCODING 字符。

          這個就是會為什么導致沒發現:
          讀文件錯誤,在開發工具中打出的LOG 欺騙了我們的眼睛。我的開發工具BEA 里JAVA 文件默認ENCODING cp1252, 改成UTF8 就好了。

          這個特別容易忽略,當在控制臺看LOG的時候,發現讀過來的文件里的內容打出來都正確,就忽略了JAVA的源文件。認為是從unicode轉換 utf8 有問題,特別將字符又做了處理,發現插入數據庫還是不正確。

          修改了ENCODING 字符字符后發現讀入文件就不對了。這樣輕松就解決了。

          所以只要修改了讀文件的時候采用 UTF8格式就可以啦。

          posted on 2011-05-22 11:28 paulwong 閱讀(311) 評論(0)  編輯  收藏 所屬分類: J2EE

          主站蜘蛛池模板: 县级市| 共和县| 鄢陵县| 温宿县| 黑河市| 密云县| 监利县| 太谷县| 修武县| 新营市| 闸北区| 中宁县| 平遥县| 平顺县| 无锡市| 新巴尔虎左旗| 铁岭县| 神农架林区| 华阴市| 内江市| 梁平县| 开封市| 当涂县| 奈曼旗| 滦平县| 遵义县| 繁昌县| 布尔津县| 连平县| 温州市| 盐源县| 尤溪县| 噶尔县| 长岛县| 班玛县| 睢宁县| 无棣县| 灌阳县| 博白县| 华宁县| 华蓥市|