Androidエラー処理-Android読み取りtxtファイルの乱符号化ソリューション
2639 ワード
転入先http://blog.csdn.net/iplayvs2008/article/details/11484627
テストテキスト:122.1196,29.90573、北仑固廃工場テストコードセグメント:
ファイルをUnicode形式で保存
ファイルをutf-8形式で保存
この方式では文字化けのない中国語表示を得ることができるが、utf-8形式で取得した経緯度の数字についてはdouble lon=Doubleを利用する.parseDouble(lat);エラー
コードを次のように変更します.
中国語の文字化けしを解決し、Doubleを解決した.parseDouble(lat)エラーの問題.
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)エラーの問題.