<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yanmin

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      16 隨筆 :: 1 文章 :: 9 評論 :: 0 Trackbacks

    2011年5月20日 #

         摘要:   閱讀全文
    posted @ 2012-07-12 16:48 yanmin 閱讀(861) | 評論 (0)編輯 收藏

    最近做一個項目,里面很多特殊字符,引發了一些問題,解決后很開心,特別來分享。
    特殊字符:
    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'Ivoire


    數據庫腳本中遇到特殊字符:
    1:  單引號‘ , oracle 腳本需要寫成 兩個單引號
    UPDATE pi_portal_nday SET ND_CTY='Côte d'‘Ivoire' WHERE ND_ID IN (152,162);

    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 讀文件的時候采用 UTF8格式。

    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格式就可以啦。


    JAVA 代碼中直接賦值的或是頁面錄入的。
    1: 頁面的就很簡單了,JSP 或是HTML ,里面加入字符是UTF8的就OK
    2: 代碼里面的,需要轉換:
    byte[] byteArr1 = columnValueBe.getBytes("UTF-8");
    columnValue = new String(byteArr1, "UTF-8");













    posted @ 2011-05-20 18:29 yanmin 閱讀(1990) | 評論 (1)編輯 收藏

    主站蜘蛛池模板: 国产亚洲色婷婷久久99精品91| 国产精品无码亚洲精品2021| 九九99热免费最新版| 国产成人综合久久精品免费| 亚洲日韩VA无码中文字幕| 理论秋霞在线看免费| 手机看片久久国产免费| 亚洲国产精品日韩av不卡在线 | 亚洲国产成人精品久久| 免费国产黄网站在线观看| 亚洲第一福利网站| 日本在线看片免费人成视频1000| 国产国产人免费视频成69大陆| 老司机亚洲精品影院| 日韩少妇内射免费播放| 99在线精品免费视频九九视 | 亚洲中久无码永久在线观看同| 亚洲国产一区在线观看| av无码国产在线看免费网站| 亚洲色中文字幕无码AV| 久久中文字幕免费视频| 亚洲国产成人手机在线电影bd| 一级毛片视频免费观看| 成人免费a级毛片无码网站入口| 亚洲精品无码久久久影院相关影片 | 亚洲av无码国产精品色午夜字幕 | 欧美在线看片A免费观看| 亚洲av无码专区青青草原| 五月亭亭免费高清在线| 亚洲性无码一区二区三区| 亚洲精品国精品久久99热| 国内精品一级毛片免费看| 亚洲色婷婷综合开心网| 亚洲久热无码av中文字幕| 亚洲无码日韩精品第一页| 黄色片网站在线免费观看| 久久精品国产亚洲av麻豆| 最新中文字幕免费视频| 中文永久免费观看网站| 亚洲一级特黄大片无码毛片| 国产精品亚洲精品日韩动图 |