【发布时间】:2015-04-12 21:57:31
【问题描述】:
我正在从 Tatoeba 项目转换 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
Shift-JIS:
????\??????�N?�}????????????????????????????N?�N? ??��??????
Shift_JIS:
??????\??????????????????????????????????????? ????????????????
CSV 文件(由 Excel 2010 打开时)
n きみにちょっとしたものг‚'г‚‚гЃЈгЃ¦гЃЌгЃџг‚€гЂ‚
我做错了什么?如何解决这个问题?
【问题讨论】:
-
文件中的文本使用哪种编码?
-
可能是数据库编码的问题,而不是 java 显示
-
@immibis,老实说,我不知道。现在我正在寻找如何识别编码
-
@ortis,我尝试过 System.out.println(s)。数据库和控制台中的值是一样的
-
好吧,如果您无法在 DB 客户端中显示正确的单词,则可能是数据库编码问题。检查编码是否为UTF8
标签: java csv encoding utf-8 character-encoding