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: 路権ち点節ヤトツ限聞ド勇売質タカア
我正在尝试从 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: 路権ち点節ヤトツ限聞ド勇売質タカア