我尝试写入文件德语符号,但是像Ö这样的大写字母存在问题。
小写的符号写的很好。我为OutputStreamWriter使用ISO_8859_1字符集。
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(fileName), StandardCharsets.ISO_8859_1);
当我写文件符号“ Ü”时,我希望看到“ Ü”,但是我看到的是“ / xC3?” < / p>
答案 0 :(得分:4)
我尝试了以下示例,它运行正常:
package com.test;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;
public class Test {
public static void main(String[] args) throws IOException {
//OutputStreamWriter outputStreamWriter = new OutputStreamWriter(new FileOutputStream(fileName), StandardCharsets.ISO_8859_1);
OutputStream outputStream = new FileOutputStream("c:\\output.txt");
OutputStreamWriter outputStreamWriter = new OutputStreamWriter(outputStream,
StandardCharsets.ISO_8859_1);
outputStreamWriter.write("When it is not possible to use the umlauts (for example, when using a restricted character set) the characters Ä, Ö, Ü, ä, ö, ü should be transcribed as Ae, Oe, Ue, ae, oe, ue respectively, following the earlier postvocalic-e convention; simply using the base vowel (e.g. u instead of ü) would be wrong and misleading. However, such transcription should be avoided if possible, especially with names. Names often exist in different variants, such as \"Müller\" and \"Mueller\", and with such transcriptions in use one could not work out the correct spelling of the name.");
outputStreamWriter.close();
}
}
输出:当无法使用变音符号时(例如,使用受限字符集时),应将字符Ä,Ö,Ü,ä,ö,ü转录为Ae ,Oe,Ue,ae,oe和ue,分别遵循较早的postvocalic-e公约;仅仅使用基本元音(例如,用u代替ü)是错误的,并且会产生误导。但是,如果可能的话,应避免这种抄写,尤其是名字。名称通常以不同的变体形式存在,例如“Müller”和“ Mueller”,并且使用这样的转录后,人们将无法找出该名称的正确拼写。
让我知道单词是否正确编码,因为我听不懂德语。
答案 1 :(得分:0)
似乎您的Java源文件(如果使用String文字)或文本输入文件或(?)是用UTF-8编码的,但是正在读取它的编译器却没有。在所有情况下,您都必须让Java编译器使用其编写时使用的字符编码来读取Java源文件。 (实际上,这适用于每个人或程序读取任何文本文件的情况。)
javac --help
javac … -encoding UTF-8 …
在整个项目中最好使用相同的Java源文件编码。如果您的编辑器/ IDE具有项目系统,则为您选择的编码配置它,它将把正确的编码传递给编译器。 UTF-8是一个不错的选择。
如果要从某处读取输入,请验证代码是否使用文件编写器使用的编码。
另一方面,文本文件适合专家使用,因为它们需要确定字符编码,并将字符编码传达给阅读器以及使用该字符编码的每个阅读器。对于某些特殊类型的文本文件(例如配置文件或属性文件),它可以正常工作,但对于用户提供的/用户使用的文件则无效。一些适合数据的特殊类型的文本文件是:JSON和XML。