Я пытаюсь прочитать китайский символ (например: 早上 好) из БД MySQL, размещенной на сервере.
Переменные сеанса на стороне сервера выглядели так:
ПОКАЗАТЬ СЕССИЮПЕРЕМЕННЫЕ, КАК 'char%';
+--------------------------+----------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | folder/charsets/ |
+--------------------------+----------------------------------------+
Я не мог установить переменные через файл hibernate.cfg, но я попытался установить их, используя следующий код. Все еще не работал. Попытка установить переменные сеанса путем непосредственного выполнения запроса
Session session = sessionFactory.openSession();
session.beginTransaction();
SQLQuery setQuery1 = session.createSQLQuery("set character_set_client=?;");
setQuery1.setParameter(0, "latin1");
setQuery1.executeUpdate();
После изменений отображается тот же запрос (SHOW SESSION VARIABLES LIKE 'char%';) при запуске через Hibernate (с тем же подключением) отображаетожидаемые значения для переменных сессии. Однако результат запроса для отображения китайского символа кажется поврежденным или нечитаемым (что-то вроде «é˜ ç´ç '° 礻)