3

ôð¤ Ø$î1<¨ V¸dPžÐ ÀH@ˆàÀༀ@ANSI エンコーディングでファイルに書き込みたいJava 文字列 ~€4` を取得しました。

BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(output),"windows-1252"));
    try {   
        out.append(str);
    } finally {
        out.close();
    }

デバッガーは、〜4がstr含まれていると言います。ôð¤ Ø$î1<¨ V¸dPÐ ÀH@àÀà¼@出力ファイルに書き込むとすぐに、ファイルには?ÒÜ@4. では、ファイルへのメソッドの書き込みには何が問題なのですか?

この奇妙な文字列で申し訳ありません - Java で Delphi 7 関数を書き直そうとしています。これらの弦は、私が入手した唯一のサンプルです。

4

1 に答える 1

5

私が走れば

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

そのため、翻訳で文字が失われることはありません。


エンコーディングを「US-ASCII」に変更すると、次の出力が得られます

32: '??? ?$?1<? V?dP?? ?H@??????@`~?4' matches false
于 2012-10-26T11:10:03.423 に答える