使用特殊编码将Java字符串写入文件

使用特殊编码将Java字符串写入文件,java,delphi,file-io,encoding,Java,Delphi,File Io,Encoding,如果我运行的话,我已经得到了Java字符串ðØ$î1 String text = "ôð¤ Ø$î1<¨ V¸dPžÐ ÀH@ˆàÀༀ@`~€4"; Writer writer = new OutputStreamWriter(new FileOutputStream("test.txt"), "windows-1252"); writer.append(text); writer.close(); BufferedReader br = new BufferedReader(new

如果我运行的话,我已经得到了Java字符串
ðØ$î1

String text = "ôð¤ Ø$î1<¨ V¸dPžÐ ÀH@ˆàÀༀ@`~€4";
Writer writer = new OutputStreamWriter(new FileOutputStream("test.txt"), "windows-1252");
writer.append(text);
writer.close();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "windows-1252"));
String line = br.readLine();
br.close();
System.out.println(line.length() + ": '" + line + "' matches " + line.equals(text));

字符串文本=“ðØ$î1您使用什么读取输出文件?除非这也在使用Windows-1252,否则你会得到不好的结果。也有可能并非所有这些值都在Windows-1252中。是否确实正确查看了文件?文件的长度是多少?长度是~5还是~32?不受支持的字符应该像第一个一样变成
,不会消失。@Jan:不,一点也不例外。@Jon我正在使用记事本+,它显示ANSI作为两个文件的编码。原始文件(由delphi编写)的文件大小为35-与字符串相同。我的文件长度为5。如果您使用与写入文件不同的编码解释文件,您将得到不同的文本。。。但文件大小为5是意料不到的,如果我这样做,一切都很好。看起来硬编码字符串和计算字符串之间有区别,这就是重点。已将调试器编码设置为ANSI。该字符串与张贴的字符串不同。所以Peter是对的。@k_wave:它不是调试器,而是编译器。我的IDE使用UTF-8文件格式,但即使是“错误”的编码,字符串也不会被截断,其中会有许多
String text = "ôð¤ Ø$î1<¨ V¸dPžÐ ÀH@ˆàÀༀ@`~€4";
Writer writer = new OutputStreamWriter(new FileOutputStream("test.txt"), "windows-1252");
writer.append(text);
writer.close();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt"), "windows-1252"));
String line = br.readLine();
br.close();
System.out.println(line.length() + ": '" + line + "' matches " + line.equals(text));
32: 'ôð¤ Ø$î1<¨ V¸dPžÐ ÀH@ˆàÀༀ@`~€4' matches true
32: '??? ?$?1<? V?dP?? ?H@??????@`~?4' matches false