Androidエラー処理-Android読み取りtxtファイルの乱符号化ソリューション

2639 ワード

転入先http://blog.csdn.net/iplayvs2008/article/details/11484627
 SDCard   txt       android          ,          ,         ,     String temp1 =EncodingUtils.getString(strLine.getBytes(),"GB2312");             ,                 。    ,   txt   win         ANSI  , android     UTF-8  ,   txt       android        。       txt   UTF-8           ,          ,             ,     。                 。

テストテキスト:122.1196,29.90573、北仑固廃工場テストコードセグメント:
reader=new BufferedReader(new FileReader(filename));
strLine=reader.readLine() ;
String temp1 = EncodingUtils.getString(strLine.getBytes(),"GB2312");
String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"),"utf-8");
String temp3 = EncodingUtils.getString(strLine.getBytes(),"utf-8");

ファイルをUnicode形式で保存

       
ファイルをutf-8形式で保存

この方式では文字化けのない中国語表示を得ることができるが、utf-8形式で取得した経緯度の数字についてはdouble lon=Doubleを利用する.parseDouble(lat);エラーNumberFormatException, parseDouble(lat)メソッドではutf-8形式に格納された句読点付き小数を処理できません.ファイルをANSI形式で保存

コードを次のように変更します.
    reader = new BufferedReader(new InputStreamReader(new FileInputStream(filename),"GB2312"));

    strLine=reader.readLine() ;

    String temp1 = EncodingUtils.getString(strLine.getBytes(),"GB2312");

    String temp2 = EncodingUtils.getString(strLine.getBytes("utf-8"),"utf-8");

    String temp3 = EncodingUtils.getString(strLine.getBytes(),"utf-8");


中国語の文字化けしを解決し、Doubleを解決した.parseDouble(lat)エラーの問題.