У меня есть Person pojo с атрибутом name , который я храню в своей базе данных в соответствующей таблице person .Мой db-сервер - MySQL, в качестве серверной кодировки по умолчанию установлена utf-8, таблица Person - это таблица InnoDB, которая также была создана с использованием utf-8 в качестве кодировки по умолчанию, а в моей строке подключения к db указано utf-8 как кодировка соединения.
Мне необходимо создавать и хранить новые pojos Person, считывая их имена из txt-файла ( Person.txt ), который содержит имя в каждой строке, но кодировка файла UTF-16 .
person.txt
Джон
Μαρία
Элен
и т. Д.
Вот пример кода:
PersonDao dao = new PersonDao();
File file = new File("persons.txt");
BufferedReader reader = new BufferedReader(
new InputStreamReader(new FileInputStream(file), "UTF-16"));
String line = reader.readLine();
while (line!=null) {
Person p = new Person();
p.setName(line.trim());
dao.save(p);
line = reader.readLine();
}
Подводя итог, я читаю строковые символы как utf-16, сохраняю их в локальных переменных и сохраняю их как utf-8.
Я хотел бы спросить: происходит ли какое-либо преобразование символов во время этой процедуры?Если да, то в какой момент это происходит?Возможно ли, что я смогу хранить неработающие символы из-за рабочего процесса utf-16 -> utf-8?