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

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

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

    少年阿賓

    那些青春的歲月

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks
    完美的解決方法從辟謠開始:
    1)JDOM是否生成UTF-8的文件與Format是否設置無關,只有輸出其他字符編碼才需要設置,見下面的注釋。
    2)JDOM輸出UTF-8文件亂碼的根本原因并非在JDOMAPI,而是在JDK。
    具體描述:
        JDOM的輸出類XMLOutputter有兩個output接口,除了都具有一個Document參數外,分別接受Writer和 OutputStream參數。
        這給我們一個錯覺,兩個接口可以任意使用。
        首先我們用output(doc,System.out)來做測試,此時得到亂碼,
          然后我們改為output(doc,new PrintWriter(System.out))來測試,輸出不是亂碼,
          也就是說在控制臺的時候一定要用一個Writer接口包裝一下。
         然后我們用output(doc,new FileWriter(path))來做測試,結果卻得到亂碼,
          然后我們改為output(doc,new FileOutputStream(path))來測試,輸出不是亂碼,
          也就是說在輸出文件的時候一定要用一個OutputStream接口包裝一下。
         瘋了吧?呵呵,很搞笑是吧。經過到JDOM的源碼中調試,發現沒有任何問題,問題出在了JDK里面。
    JDK內的對應接口處理:
    1)PrintWriter類有參數為OutputStream的構造方法,因此可以從System.out包裝到PrintWriter
    2)FileWriter類沒有參數為OutputStream的構造方法,因此不能從FileOutputStream包裝到 FileWriter
    3)如果PrintWriter類用了參數為Writer的構造方法(Writer實現為FileWriter),最后輸出也是亂碼
    4)如果用一個FileOutputStream來包裝一個控制臺輸出,也是亂碼
    因此,對于JDK內的各種輸出體系,各種InputStream、OutputStream、reader和writer要充分認識,否則極容易出現一些意想不到的問題。


    posted on 2012-08-15 09:34 abin 閱讀(680) 評論(0)  編輯  收藏 所屬分類: JDOM
    主站蜘蛛池模板: 黄色三级三级免费看| 亚洲熟妇无码AV不卡在线播放| 曰批全过程免费视频观看免费软件| 成年女人毛片免费观看97| 亚洲人配人种jizz| 成人免费视频试看120秒| 亚洲日本在线电影| 国产特级淫片免费看| 国产精品成人亚洲| 亚洲男人在线无码视频| 国产精品成人免费观看| 亚洲国产精品无码专区| 99re6热视频精品免费观看| 亚洲精品中文字幕无码AV| 无码乱肉视频免费大全合集| 国产亚洲精品成人AA片| 日本免费一本天堂在线| 一级看片免费视频囗交| 国产亚洲精品岁国产微拍精品| 久久综合国产乱子伦精品免费| 亚洲人成片在线观看| 免费高清小黄站在线观看| 免费人成视频在线播放| 国产亚洲成av人片在线观看| 久草视频在线免费| 亚洲aⅴ天堂av天堂无码麻豆| 亚洲日本一区二区三区在线不卡| 精品一区二区三区免费| 色偷偷女男人的天堂亚洲网| 又大又硬又爽免费视频| 久久免费福利视频| 亚洲欧洲无卡二区视頻| 在线观看国产区亚洲一区成人 | 亚洲第一成年免费网站| 中文字幕在亚洲第一在线 | 国产免费一区二区三区| 国产天堂亚洲精品| 婷婷精品国产亚洲AV麻豆不片 | 香蕉视频亚洲一级| 国产亚洲av片在线观看播放| 国产四虎免费精品视频|