gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:15 26 4
gpt4 key购买 nike

我用 java 编写了一个 android 应用程序来获取用户答案并将它们保存在一个文件中。问题是这个文件是以 utf-8 格式保存的。最终用户将在 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();

关于您的第一个问题:

I think I know that to convert Strings to ANSI I should use:
String unicode = new String(asciiBytes, "windows-1252");
Is that correct?

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

关于java - 如何将 UTF 字符串转换为 ANSI 并使用 JAVA-ANDROID 在 ExternalSD 中创建 ANSI 文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11218461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com