Android Studio:从内部存储读取解码问题
我在为我正在制作的Android应用程序读取Android Studio中的内部存储文件时遇到问题。我有一个应用程序,它有一个edittext,用户可以输入文本。然后,单击一个按钮,我将此文本保存在内部存储器中以备将来使用 但是,当我将文件从内部存储器加载回edittext时,我使用的过程会将某些字符(***尤其是英语以外的语言)更改为奇数符号。例如,如果我使用俄语文本输入、保存文件并尝试加载它,它将是一堆混乱的符号和字母 以下是保存到内部存储器的代码:Android Studio:从内部存储读取解码问题,android,fileinputstream,internal-storage,android-internal-storage,Android,Fileinputstream,Internal Storage,Android Internal Storage,我在为我正在制作的Android应用程序读取Android Studio中的内部存储文件时遇到问题。我有一个应用程序,它有一个edittext,用户可以输入文本。然后,单击一个按钮,我将此文本保存在内部存储器中以备将来使用 但是,当我将文件从内部存储器加载回edittext时,我使用的过程会将某些字符(***尤其是英语以外的语言)更改为奇数符号。例如,如果我使用俄语文本输入、保存文件并尝试加载它,它将是一堆混乱的符号和字母 以下是保存到内部存储器的代码: String c
String codeData = htmlCode.getText().toString();
try {
FileOutputStream fileOutputStream = getActivity().openFileOutput("MyFile.html", getActivity().MODE_PRIVATE);
//byte[] bytes = htmlCode.getText().toString().getBytes("UTF-8");
fileOutputStream.write(codeData.getBytes("UTF-32"));
fileOutputStream.close();
} catch (Exception e) {
}
String putThisStringinEditText = "";
try {
FileInputStream fileInputStream = getActivity().openFileInput("MyFile.html");
int c;
String temp = "";
while ((c = fileInputStream.read()) != -1) {
temp = temp + Character.toString((char)c);
}
putThisStringinEditText = temp;
} catch (Exception e) {
}
以下是从内部存储器加载的代码:
String codeData = htmlCode.getText().toString();
try {
FileOutputStream fileOutputStream = getActivity().openFileOutput("MyFile.html", getActivity().MODE_PRIVATE);
//byte[] bytes = htmlCode.getText().toString().getBytes("UTF-8");
fileOutputStream.write(codeData.getBytes("UTF-32"));
fileOutputStream.close();
} catch (Exception e) {
}
String putThisStringinEditText = "";
try {
FileInputStream fileInputStream = getActivity().openFileInput("MyFile.html");
int c;
String temp = "";
while ((c = fileInputStream.read()) != -1) {
temp = temp + Character.toString((char)c);
}
putThisStringinEditText = temp;
} catch (Exception e) {
}
另外,请注意***我知道问题不在于保存文件,因为我有其他测试方法,并且我已经确定问题源于加载文件 不,问题是您保存了文件utf-32,但在加载时没有使用utf-32。为什么要保存文件utf-32?最好使用.writeLine()和.readLine()。