如何将UTF字符串转换为ANSI并使用JAVA-ANDROID在SSD中创建ANSI文本文件
我用java编写了一个android应用程序来获取用户答案并将其保存在一个文件中。 问题是该文件保存在utf-8中。 最终用户将在IBM SPSS中打开这些文件,这是一个windows应用程序,只能读取ANSI(windows-1252)中的文件 如何使用ANSI代码创建文件,以便从java android应用程序保存到ssd卡中? 我想我知道要将字符串转换为ANSI,我应该使用:如何将UTF字符串转换为ANSI并使用JAVA-ANDROID在SSD中创建ANSI文本文件,java,android,utf-8,cp1252,Java,Android,Utf 8,Cp1252,我用java编写了一个android应用程序来获取用户答案并将其保存在一个文件中。 问题是该文件保存在utf-8中。 最终用户将在IBM SPSS中打开这些文件,这是一个windows应用程序,只能读取ANSI(windows-1252)中的文件 如何使用ANSI代码创建文件,以便从java android应用程序保存到ssd卡中? 我想我知道要将字符串转换为ANSI,我应该使用: String unicode = new String(asciiBytes, "windows-1252");
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 writer = new OutputStreamWriter(new FileOutputStream(file, true),
"windows-1252");
writer.append(textBody);
writer.close();
关于你的第一个问题: 我想我知道,要将字符串转换为ANSI,我应该使用:
stringunicode=新字符串(asciiBytes,“windows-1252”)代码>
对吗
给定表示“windows-1252”字符集中字符的字节数组,此代码将构造适当的Java字符串(在JVM中内部表示为Unicode)。这不是“将字符串转换为ANSI”。。。它的作用正好相反:将“windows-1252”转换为Unicode。有没有一种简单的方法来指定如何处理无法在CP1252中表示的字符?@sarnold:如果你想更多地控制编码过程,你应该使用一个,但我从来没有。答案很短,但很尖锐!谢谢这就解决了这个案子!我使用它是因为我的操作系统是葡萄牙语(巴西)语言。