Я пытаюсь создать текстовый файл с кодировкой ISO-8859-15 из метода Java:Java Latin1 текстовый файл с кодировкой
public void createLatin1EncodedTextFile(File latin1File, Integer numberOfLines) throws UnsupportedEncodingException,
FileNotFoundException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(latin1File), "8859_1"));
try {
for (int i = 0; i < numberOfLines; i++) {
bw.write(new String(generateRandomString().getBytes(), "ISO-8859-15"));
}
}
catch (IOException e) {
e.printStackTrace();
}
finally {
try {
if (!bw.equals(null)) {
bw.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
}
}
метод generateRandomString() генерирует случайную последовательность символов. Метод работает нормально, но когда я его открываю с помощью блокнота ++, он говорит, что файл закодирован в UTF-8.
Для '.getBytes()' вам нужно указать, какую кодировку следует использовать. см. [getBytes (String charset)] (https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#getBytes (java.lang.String)) – SubOptimal
У вас на самом деле нет -ASCII 7-битные символы в вашем документе? Если это только ASCII, то Notepad ++ сообщит «UTF-8 без спецификации» –