code.google.com的 Eula 模块运行良好,但由于某种原因它不显示 Unicode 字符(例如 ©)。
我知道 AlertDialogs 完全能够显示 Unicode 字符,因为我在我的应用程序的其他对话框中这样做。
我能够在 Eula 的对话框和其他对话框之间找到的唯一区别是 Eula.java 对话框从 assets 文件夹中的文本文件中获取其字符串:
private static CharSequence readEula(Activity activity) {
BufferedReader in = null;
try {
in = new BufferedReader(new InputStreamReader(activity.getAssets().open(ASSET_EULA)));
String line;
StringBuilder buffer = new StringBuilder();
while ((line = in.readLine()) != null)
buffer.append(line).append('\n');
return buffer;
}
catch (IOException e) {
return "";
}
finally {
closeStream(in);
}
}
该文本文件在 Notepad++ 中显示所有 Unicode 字符,所以我只能怀疑InputStreamReader
,BufferedReader
或者StringBuilder
在从资产文件到 AlertDialog 的过程中对字符串做一些事情。
如何让 Eula.java 显示 Unicode?