Сложно быть конкретным без подробностей, но на ум приходит пара вещей:
1) Если я вас правильно понимаю, вы говорите, что ваш CSV находится в UTF8?Вы убедились, что предположение верно?И в связи с этим, учитывая, что вы думаете, что это UTF-8, как вы загружаете этот файл в Java?
Обратите внимание, что для чтения файлов в Java используется системная кодировка символов по умолчанию.Это не обязательно UTF-8, и вы можете проверить, печатаете ли вы System.getProperty("file.encoding");
.
Я не склонен полагаться на это и загружать в соответствии с известной кодировкой следующим образом:
FileInputStream fis = new FileInputStream("myfile.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(fis, "UTF-8"));
...
2) Сравнение базы данных отличается от указания набора символов.(Обратите внимание, было бы удобно, если бы вы также упомянули свой клиент базы данных).Сопоставление относится к сортировке / упорядочению текста.Как правило, вам нужно указать набор символов.Как это сделать, во многом зависит от вашей базы данных.