我有一个用Windows编辑器(或Word)编写的标准文本文件,并在android设备中以ANSI格式保存。如果我打开并阅读此文件并将其显示在我的Android设备上,除了德语UmlauteäÄöÖüÜß之外,所有字符都会正确显示。在黑色钻石中显示白色问号而不是这些字符。 (我使用remoteViews.setTextViewText(...
)
我用谷歌搜索了几个小时,发现了很多关于使用UTF-8编码等的提示。但是当我用UTF-8或任何格式保存文件但是ANSI时,我会得到一个异常并且无法读取文件所有。使用android编辑器显示该文件的编码在ANSI和UTF-8中都是正确的。
我的程序太长了,无法复制到此处,因此我提取了希望相关的部分并将其放在下面。请帮忙!
public class Test {
static void readFile() {
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath(), "birthday.txt");
if (file.exists())
{
try {
FileReader fileReader = new FileReader(file);
BufferedReader br = new BufferedReader(fileReader);
//BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(directory+"birthday.txt"), "windows-1252"));
String lineOfText;
while ((lineOfText = br.readLine()) != null) {
//Output lineOfText via remoteViews.setTextViewText(WidgetOutput.getRef(linecounter).getIdWhat(), lineOfText);
}
br.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
答案 0 :(得分:0)
评论BufferedReader
行似乎应该有效。但是,windows-1252
是java.nio
中类的规范名称。对于java.io
中的课程(如InputStreamReader
),规范名称为Cp1252
。见Supported Encodings
您可能还想尝试ISO-8859-1
(nio)或ISO8859_1
(io)。