gpt4 book ai didi

Java编写Shift-JIS CSV格式文件

转载 作者:行者123 更新时间:2023-12-01 09:34:27 25 4
gpt4 key购买 nike

我目前正在使用 Shift-JIS 格式的输出 CSV 文件进行一些测试,但不知何故,我发现在日语字符差异的试验中很奇怪,如下所示:

我的代码:

try {
String dat2 = "カヨ ハラダ";
String dat = "2バイト文字出力";
String fileName = "C:/Users/CR/Desktop/test2.txt";

FileOutputStream fos = new FileOutputStream(fileName);
OutputStreamWriter osw = new OutputStreamWriter(fos, "Shift_JIS");
BufferedWriter fp = new BufferedWriter(osw);

fp.write(new String(dat2.getBytes("Shift_JIS"));
fp.newLine();

fp.flush();
fp.close();
fos.close();

} catch (Exception ex) {
throw new Exception(ex);
}

数据2的结果:

It was not in Shift-JIS formt

它不是 Shift-JIS 格式,并且单词也不正确,因此另一次尝试:

数据结果:

enter image description here

这也可以正确显示并以预期的格式显示。

出了什么问题吗?或者内容不正确?

谢谢!

最佳答案

除了以下行之外,您的大部分代码都很好:

    fp.write(new String(dat2.getBytes("Shift_JIS"));

Java 字符串(或多或少)是中性编码。当您将字符串写入文件(或通过网络发送)时,编码就会发挥作用。在您的情况下,编码转换由您正确设置的 OutputStreamWriter 处理。

所以这条线变得更简单:

    fp.write(dat2);

顺便说一句:

表达式

new String(dat2.getBytes("Shift_JIS")

首先将字符串dat2转换为Shift_JIS编码的字节数组,然后使用默认编码(可能是UTF-8)将字节数组转换为字符串,从而使用错误的编码解码字节数组。

附注

还有一件事。诸如 CSV 文件之类的文本文件无法指示使用什么编码来写入它们(异常(exception):带有 BOM 的 UTF)。只有启发式方法才能做出好的猜测。因此,当您在文本编辑器中打开它们时,您必须检查它们是否使用正确的编码打开,并在必要时修复它。在第一个屏幕截图中,状态栏中显示“ANSI”。这几乎不是您想要的。

关于Java编写Shift-JIS CSV格式文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39121352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com