Запись Unicode в RTF-файл
Я пытаюсь записать строки на разных языках в файл RTF. Я пробовал несколько разных вещей. Я использую здесь японский в качестве примера, но то же самое для других языков, которые я пробовал.
public void writeToFile(){
String strJapanese = "日本語";
DataOutputStream outStream;
File file = new File("C:\\file.rtf");
try{
outStream = new DataOutputStream(new FileOutputStream(file));
outStream.writeBytes(strJapanese);
outStream.close();
}catch (Exception e){
System.out.println(e.toString());
}
}
Я также попробовал:
byte[] b = strJapanese.getBytes("UTF-8");
String output = new String(b);
Или более конкретно:
byte[] b = strJapanese.getBytes("Shift-JIS");
String output = new String(b);
Выходной поток также имеет метод writeUTF:
outStream.writeUTF(strJapanese);
Вы можете использовать byte [] непосредственно в выходном потоке с методом write. Все вышеперечисленное дает мне искаженные символы для всего, кроме западноевропейских языков. Чтобы проверить, работает ли он, я попытался открыть документ с результатами в notepad ++ и установить соответствующую кодировку. Также я использовал OpenOffice, где вы можете выбрать кодировку и шрифт при открытии документа.
Если он работает, но мой компьютер не может открыть его должным образом, есть ли способ проверить это?