隨筆 - 154  文章 - 60  trackbacks - 0
          <2008年2月>
          272829303112
          3456789
          10111213141516
          17181920212223
          2425262728291
          2345678

          聲明:

          該blog是為了收集資料,認識朋友,學習、提高技術(shù),所以本blog的內(nèi)容除非聲明,否則一律為轉(zhuǎn)載!!

          感謝那些公開自己技術(shù)成果的高人們!!!

          支持開源,尊重他人的勞動!!

          常用鏈接

          留言簿(3)

          隨筆分類(148)

          隨筆檔案(143)

          收藏夾(2)

          其他

          學習(技術(shù))

          觀察思考(非技術(shù))

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          寫出來的文件用瀏覽器打開后都是亂碼。已經(jīng)在XML的最前面加上了
          <?xml version="1.0" encoding="UTF-8"?>
          而且瀏覽器的編碼也是UTF-8的,這就排除了瀏覽器的問題。
          再用VIM打開,發(fā)現(xiàn)用GB2312看是沒問題的,換成:set encoding=UTF-8以后開始亂碼
          這時我嘗試將字符串轉(zhuǎn)碼后寫入文件,但在UTF-8,GBK和ISO8859_1中間怎么轉(zhuǎn)也沒有用。
          忽然想起前幾天yiyayoyo同學和我提過Java寫文件默認編碼的問題,于是開始google,發(fā)現(xiàn)我用的寫文件的方式無法指定編碼,于是換用另一種寫文件的方式指定UTF-8,遂搞定。代碼如下:

          老代碼:
          PrintWriter pw = new PrintWriter(new FileWriter(path));
          pw.print(content);
          pw.close();

          新代碼:
          FileOutputStream fos = new FileOutputStream(path);
          Writer out = new OutputStreamWriter(fos, "UTF-8");
          out.write(content);
          out.close();
          fos.close();

          順便抱怨一句,Java中寫文件的方式還真是多阿多……我等一兩年經(jīng)驗的小程序員看了都眼暈

             庫卡 說:
            讀代碼也有編碼的問題,如果要讀取UTF-8的文件,應(yīng)采用如下方式覆蓋默認編碼:
            FileInputStream fis = new FileInputStream(s);
            StringBuffer content = new StringBuffer();
            DataInputStream in = new DataInputStream(fis);
            BufferedReader d = new BufferedReader(new InputStreamReader(in, "UTF-8"));
            String line = null;
             while ((line = d.readLine()) != null)
                                content.append(line + "\n");
            d.close();
            in.close();
            fis.close();

          posted on 2008-02-14 14:20 lk 閱讀(811) 評論(0)  編輯  收藏 所屬分類: j2sexml
          主站蜘蛛池模板: 镇江市| 定南县| 盘山县| 衡水市| 阿拉尔市| 梧州市| 鄱阳县| 江津市| 大关县| 尼木县| 南京市| 当涂县| 新沂市| 马山县| 加查县| 南陵县| 泾川县| 马公市| 静安区| 贵定县| 黄大仙区| 大同市| 汾西县| 于田县| 杭锦后旗| 石泉县| 利津县| 柘荣县| 通化县| 临城县| 札达县| 赣榆县| 大关县| 阿尔山市| 沐川县| 吉木萨尔县| 谢通门县| 海伦市| 濮阳市| 景泰县| 文水县|