Java - 从 JTextField 获取日语并保存到文件

Java - Get Japanese from JTextField and save to File

我正在尝试从 JTextField(使用 getText() 方法)获取日语输入并将其保存到文件中。我相信它确实从 JTextField 获得日文格式,因为我可以 append()String 转换为 JTextArea 并且它将采用正确的日文格式。

但是,当我尝试写入文件时,它只会变成乱码!我尝试使用用 StandardCharsets.UTF_8 实例化的 OutputStreamWriter,我尝试使用普通的 FileOutputStream,在其中我通过对字符串调用 getBytes(StandardCharsets.UTF_8) 发送字节。在这两种情况下,生成的文件看起来更像以下内容:

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

这自然不是我想要的。有人知道问题出在哪里吗?

我很确定您正在使用 ISO-8859-1 而不是 UTF-8 创建文件。 我还推断您正在使用 Eclipse,因为您之前的问题。

更改您的工作区设置

Window -> 首选项 -> 常规 -> 工作区:UTF-8

所有内容类型的默认编码

测试类

这是我用来测试理论的class

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();
    }
}

Input/output 不同的设置

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

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