Запись 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, где вы можете выбрать кодировку и шрифт при открытии документа.

Если он работает, но мой компьютер не может открыть его должным образом, есть ли способ проверить это?

Ответы на вопрос(3)

Ваш ответ на вопрос