Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将UTF字符串转换为ANSI并使用JAVA-ANDROID在SSD中创建ANSI文本文件_Java_Android_Utf 8_Cp1252 - Fatal编程技术网

如何将UTF字符串转换为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");

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

如何使用ANSI代码创建文件,以便从java android应用程序保存到ssd卡中?

我想我知道要将字符串转换为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 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:如果你想更多地控制编码过程,你应该使用一个,但我从来没有。答案很短,但很尖锐!谢谢这就解决了这个案子!我使用它是因为我的操作系统是葡萄牙语(巴西)语言。