Java - получить японский из JTextField и сохранить в файл - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь получить японский ввод от JTextField (с помощью метода getText()) и сохраняю его в файл.Я уверен, что он получает японский формат от JTextField, так как я могу append(), что String до JTextArea, и он будет в правильном японском формате.

Однако, когда я пытаюсьзаписать в файл это только превращается в бред!Я пытался использовать OutputStreamWriter, инстанцированный с StandardCharsets.UTF_8, и я пытался использовать простой FileOutputStream, куда я посылаю байты от вызова getBytes(StandardCharsets.UTF_8) в строке.В обоих случаях результирующий файл выглядит примерно так:

日本語�難������学����ら�日本��む

Естественно, это не то, что мне нужно.Кто-нибудь знает, что это может быть за проблема?

1 Ответ

0 голосов
/ 17 декабря 2018

Я почти уверен, что вы создаете файл с ISO-8859-1 вместо UTF-8.Я также предполагаю, что вы используете Eclipse, потому что ваши предыдущие вопросы.

Изменение настроек рабочего пространства

Окно -> Предпочтения -> Общие -> Рабочая область: UTF-8

enter image description here

Кодировка по умолчанию для всех типов контента

enter image description here

TestClass

Thisэто класс, который я использовал для проверки теории

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Writer;

public class test {
    public static void main(String[] args) throws IOException {
            File fileDir = new File("test.txt");
            String japanese = "路権ち点節ヤトツ限聞ド勇売質タカア";
            Writer out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileDir)));
            out.append(japanese);
            System.out.println(japanese);
            out.flush();
            out.close();
    }
}

Ввод / вывод с различными настройками

OutputFileISO: 路権ã¡ç¹ç¯ã¤ããéèãå売質ã¿ã«ã¢

OutputFileUTF8: 路権ち点節ヤトツ限聞ド勇売質タカア

...