Java 日文字符未正确显示转换CSV文件

Java 日文字符未正确显示转换CSV文件,java,csv,encoding,utf-8,character-encoding,Java,Csv,Encoding,Utf 8,Character Encoding,我正在从project转换CSV文件。它包含日语字符。我正在将数据插入SQLite数据库。插入没有问题,但字符显示不正确。 如果我直接插入: String str = content_parts[2]; sentence.setValue(str); 获取如下值: ããããããããããããã 我已尝试从JIS解码为UTF8: String str = content_parts[2]; byte[]

我正在从project转换CSV文件。它包含日语字符。我正在将数据插入SQLite数据库。插入没有问题,但字符显示不正确。 如果我直接插入:

            String str = content_parts[2];
            sentence.setValue(str);
获取如下值:

ããããããããããããã

我已尝试从JIS解码为UTF8:

            String str = content_parts[2];
            byte[] utf8EncodedBytes = str.getBytes("JIS");
            String s = new String(utf8EncodedBytes, "UTF-8");
            sentence.setValue(s);
JIS:

$B!)!)!)!)!)!)!)!)!)!)!)!)!!)!)!)!)!)!!/)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!)!!)!)!)!r!)!!)!)!!)!)!!)!)!!)!)!)(B)

轮班JIS:

??????�N�}??????????????????��?????�N�N��??????

班次(JIS):

是吗????????????????????????��?�N��??????

CSV文件(由Excel 2010打开时)

n圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪圪


我做错了什么?如何解决这个问题?

如果您仍在寻找解决方案,请参阅下面的链接

简而言之,将BOM(字节顺序标记)字符添加到文件outputstream中,然后再将其传递给outputstream编写器

String content=“要写入文件的字符串(任何语言)”

FileOutputStream fos=新的FileOutputStream(“D:\csvFile.csv”)

fos.write(239)

fos.write(187)

fos.write(191)

Writer w=新的缓冲Writer(新的OutputStreamWriter(fos,StandardCharsets.UTF_8))

w、 写作(内容)

w、 close()


希望这将有助于

文件中的文本使用哪种编码?问题可能是数据库编码,而不是javadisplay@immibis,老实说,我不知道。现在我正在寻找如何识别encoding@ortis,我已尝试使用System.out.println.console中的数据库和值相同,如果您无法在DB客户端中显示正确的单词,则可能是数据库编码问题。请检查编码是否为UTF8