如何使用 JAVA-ANDROID 将 UTF 字符串转换为 ANSI 并在ExternalSD 中创建 ANSI 文本文件

2023-12-04

我用 java 编写了一个 android 应用程序来获取用户答案并将其保存在文件中。 问题是这个文件是以utf-8保存的。 最终用户将在 IBM SPSS 中打开这些文件,IBM SPSS 是一个 Windows 应用程序,只能读取 ANSI (windows-1252) 格式的文件。

如何从 java-android 应用程序创建 ANSI 代码文件以保存在 SD 卡中?

我想我知道要将字符串转换为 ANSI 我应该使用:

String unicode = new String(asciiBytes, "windows-1252");

那是对的吗?

我保存文件的代码是这样的:

File interviewFile = new File(placeOfSDD, fileName);
FileWriter writer = new FileWriter(interviewFile, true);
writer.append(textBody);
writer.flush();
writer.close();

“textBody”是要转换为 ANSI 的字符串,“interviewFile”也是要保存为 ANSI 的文件。

谢谢您的帮助!!


字符串在 JVM 中表示为 Unicode。当你写出来的时候,你需要将其转换为合适的字符集。

为此,请使用OutputStreamWriter并指定Charset.

OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(file, true), 
                                                   "windows-1252");
writer.append(textBody);
writer.close();

关于你的第一个问题:

我想我知道要将字符串转换为 ANSI 我应该使用:
String unicode = new String(asciiBytes, "windows-1252");
那是对的吗?

给定一个表示“windows-1252”字符集中字符的字节数组,此代码将为您构造适当的 Java 字符串(在 JVM 内部表示为 Unicode)。这isn't“将字符串转换为 ANSI”...它执行相反的操作:将“windows-1252”转换为 Unicode。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 JAVA-ANDROID 将 UTF 字符串转换为 ANSI 并在ExternalSD 中创建 ANSI 文本文件 的相关文章

随机推荐