Select 来自 sqlite 数据库的日语字符
Select japanese character from sqlite database
我使用 java 从 Edict 文件创建了一个数据库,并用于该 SQLite。
SQLite 默认以 UTF-8 编码字符串
这是数据库的示例:sample
如果我这样做
Select* FROM entry
在 Java 中,我得到了 "correct" 形式的日语单词(至少是图形表示)。
但如果我尝试去做。
Select * FROM entry WHERE wordJP LIKE '食べる'"
我显然一无所获。这使得很难找到一个词的定义。
谁能解释为什么会这样,如何解决?
我有点理解这是编码问题,但我不明白它发生在哪里以及为什么。
来自你的link,
[EDICT] is a plain text document in EUC-JP coding.
如果查询字符串是UTF-8编码的,匹配会失败。
填写sqlite数据库时,您可能应该尝试将数据库转换为UTF-8。
所以我设法解决了这个问题:
- 使用 linux 中的 iconv 将文件从 EUC-JP 编码为 UTF-8
- 将 SQLITE 设置为 UTF-8
- Java 本来应该是 UTF-8,但 Eclipse 默认将其放在某些 ISO-xxx 代码中,因此您需要通过右键单击您的项目 > 属性 > 文本来更改它文件编码 > 其他(滚动列表)
我使用 java 从 Edict 文件创建了一个数据库,并用于该 SQLite。
SQLite 默认以 UTF-8 编码字符串
这是数据库的示例:sample
如果我这样做
Select* FROM entry
在 Java 中,我得到了 "correct" 形式的日语单词(至少是图形表示)。
但如果我尝试去做。
Select * FROM entry WHERE wordJP LIKE '食べる'"
我显然一无所获。这使得很难找到一个词的定义。
谁能解释为什么会这样,如何解决? 我有点理解这是编码问题,但我不明白它发生在哪里以及为什么。
来自你的link,
[EDICT] is a plain text document in EUC-JP coding.
如果查询字符串是UTF-8编码的,匹配会失败。
填写sqlite数据库时,您可能应该尝试将数据库转换为UTF-8。
所以我设法解决了这个问题:
- 使用 linux 中的 iconv 将文件从 EUC-JP 编码为 UTF-8
- 将 SQLITE 设置为 UTF-8
- Java 本来应该是 UTF-8,但 Eclipse 默认将其放在某些 ISO-xxx 代码中,因此您需要通过右键单击您的项目 > 属性 > 文本来更改它文件编码 > 其他(滚动列表)