Ошибка обновления MySQL при использовании специальных символов - PullRequest
1 голос
/ 24 октября 2008

Мне было интересно, сталкивался ли кто-нибудь с этим раньше. У меня есть клиент, который использует специальные символы в своем поле описания продукта. Обновление базы данных MySQL работает нормально, если мы используем их HTML-эквиваленты, но не работает, если используется сам символ (скопированный из карты символов или Word, я бы предположил).

Кто-нибудь видел такое поведение раньше? В данном случае речь идет о & oslash; - и мы не можем заменить его (по крайней мере, в ASP), так как символ приходит в строку SQL как «?».

Любые предложения высоко ценится - спасибо!

Ответы [ 2 ]

2 голосов
/ 24 октября 2008

Это указывает на несовпадающий набор символов между вашей базой данных (соединение) и фактическими данными.

Скорее всего, вы используете ISO-8859-1 на своем сайте, но MySQL считает, что он должен получить UTF-8.

http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html описывает, что нужно проверить и как его изменить. Возможно, самый простой способ - выполнить запрос «SET NAMES latin1» при подключении к базе данных (при условии, что это необходимый набор символов).

Будучи фанатом Unicode, я бы предложил полностью перейти на UTF-8, но я понимаю, что это не всегда выполнимый вариант.

Редактировать: @markokocic: Сортировка только определяет порядок сортировки. Хотя это, конечно, должно соответствовать вашему набору символов, оно не влияет на диапазон символов, которые можно сохранить в поле.

0 голосов
/ 24 октября 2008

Вы пытались установить параметры сортировки для таблицы в utf-8 или что-то не латинское1 / ascii.

...