Выберите японский символ из базы данных sqlite - PullRequest
0 голосов
/ 20 мая 2018

Я создал базу данных из Edict файлов с использованием Java, и я использовал для этого SQLite.

SQLite по умолчанию кодирует строку в UTF-8

Вотобразец базы данных: образец

Если я делаю

Select* FROM entry 

В Java я получаю японские слова в их «правильной» форме (графическое представление по крайней мере),

Но если я попытаюсь это сделать.

Select * FROM entry WHERE wordJP LIKE '食べる'"

Я, очевидно, ничего не получу.Это делает очень трудным найти определение слова.

Может кто-нибудь объяснить, почему это происходит, и как это решить?Я вроде понимаю, что это проблема кодирования, но я не понимаю, где это происходит и почему.

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Итак, мне удалось решить эту проблему:

  • Использование iconv из linux для кодирования файла из EUC-JP в UTF-8
  • Установка SQLITE в UTF-8
  • Java должна быть встроена в UTF-8, но затмение поместило ее по умолчанию в коде ISO-xxx, поэтому вам нужно изменить это, щелкнув правой кнопкой мыши на вашем проекте> свойства> кодировка текстового файла> другое (прокруткасписок)
0 голосов
/ 20 мая 2018

По вашей ссылке

[EDICT] - это текстовый документ в кодировке EUC-JP.

Если строки запроса закодированы в UTF-8,сопоставление не удастся.

Вероятно, вам следует попытаться преобразовать базу данных в UTF-8 при заполнении базы данных sqlite.

...