проблема набора символов в MySQL - PullRequest
0 голосов
/ 31 августа 2009

Mysql окружение выглядит следующим образом:

character_set_database="big5"

И когда я отправляю SQL, который содержит традиционный китайский

(например, "выбрать * из имени где = '中')

из jdbc в базу данных mysql выдает следующее исключение:

Illegal mix of collations (big5_chinese_ci,IMPLICIT), (latin1_swedish_ci,COERCIBLE), (latin1_swedish_ci,COERCIBLE) for operation ' IN ''

Как я могу решить эту проблему?

Но нам нужно сделать это между oracle и mysql, и когда моя программа получит данные из oracle (это кодировка ISO-8859-1) и передаст их в оператор SQL в JDBC, у нее возникнет такая проблема, но я не могу изменить сопоставление оракула. Как это решить? Почему JSP не может решить это автоматически?

Я пытался конвертировать, но китайские символы не могут быть сохранены в набор символов Latin1. может ли это вызвать проблему?

Ответы [ 3 ]

1 голос
/ 31 августа 2009

Проверьте свои параметры сортировки. Сама база данных может иметь одно сопоставление, а таблицы - совершенно другое. Если вы смешаете сопоставления из двух таблиц, вы получите эту ошибку.

Кроме того, шведская сортировка по умолчанию является базой данных по умолчанию (понятия не имею, почему).

0 голосов
/ 31 августа 2009

JSP не может решить проблему. Как JSP знать, что вы хотите?

Вы делаете какие-либо преобразования кодировки в своем JSP или просто помещаете данные оракула в базу данных mysql?

В целом важно иметь одинаковую кодировку в вашем скрипте, ваших таблицах и очень важно при подключении к базе данных.

0 голосов
/ 31 августа 2009

Какая у вас кодировка на стороне вашего Java-проекта? Вы удостоверились, что это тоже большая пятерка?

...