在我的Android应用程序中,我从远程位置获取文本文件的内容。代码在
之下 URL textUrl;
try {
textUrl = new URL("http://myurl/data.txt");
BufferedReader bufferReader = new BufferedReader(
new InputStreamReader(textUrl.openStream()));
String StringBuffer;
while ((StringBuffer = bufferReader.readLine()) != null) {
list.add(StringBuffer);
}
bufferReader.close();
} catch (MalformedURLException e) {
} catch (IOException e) {
}
return list;
我的问题是我没有得到确切的数据。文件中的数据是
USA | US 100's / 50's | 1.23 || 0 |
| US $ 20/10/5 | 1.23 | 1.259 | 0 | 1.259
|中科大| 0.00 | 0.00 | 0 | 0.00
JPN |日元1,000 | 1.20 | 1.247 | 0 | 0.00
GBP | GBP£1 | 2.08 | 2.116 | 0 | 0.00
欧元|欧元1欧元| 1.705 | 1.731 | 0 | 0.00
我得到的数据是
美国|美国100 s/50 s| 1.23 || 0 |
| US $ 20/10/5 | 1.23 | 1.259 | 0 | 1.259
|中科大| 0.00 | 0.00 | 0 | 0.00
JPN |日元1,000 | 1.20 | 1.247 | 0 | 0.00
GBP | GBP 1 | 2.08 | 2.116 | 0 | 0.00
欧元|欧元 1单位| 1.705 | 1.731 | 0 | 0.00
撇号,欧元符号和英镑符号被 符号替换。
我在模拟器和设备上都得到了相同的结果。
我无法在远程txt文件中执行任何操作。
我如何获得确切数据?
答案 0 :(得分:1)
我找到了解决方案。
1)弄清楚文件中使用的编码,正如@laalto所说。这里的编码是" windows-1252"。
2)然后将代码编辑为
BufferedReader bufferReader = new BufferedReader(new InputStreamReader(textUrl.openStream(), "windows-1252"));
这对我来说很好。