4 回答

TA貢獻(xiàn)1858條經(jīng)驗(yàn) 獲得超8個(gè)贊
如果是屬于漢字顯示出現(xiàn)的問題,你仔細(xì)檢查一下是否有字符編碼設(shè)置相關(guān)選項(xiàng)?如果有的話,你把字符編碼格式設(shè)置成:GB-2312(簡體),再試一試看看。

TA貢獻(xiàn)1789條經(jīng)驗(yàn) 獲得超8個(gè)贊
以下做了一些編碼格式的測試:
測試文本: 122.11196,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 格式下取得的經(jīng)緯度數(shù)字利用double lon = Double.parseDouble(lat); 報(bào)錯(cuò) NumberFormatException,原因可能是 parseDouble(lat)方法不能處理存成utf-8格式的帶標(biāo)點(diǎn)小數(shù)。 將文件 存成 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)報(bào)錯(cuò)問題。
- 4 回答
- 0 關(guān)注
- 2850 瀏覽
添加回答
舉報(bào)