2010-08-16 4 views
2

У меня проблемы с вставкой и отображением специальных символов. Это приложение ASP.NET 3.5 (C#), а база данных - MySql.Проблемы с отображением/вставкой специальных символов, MySql ASP.NET

Если я пытаюсь вставить специальный символ в базу данных с помощью консольного приложения, я получаю сообщение об ошибке «Неверное строковое значение:« \ x81 и т. Д. ». Если я попытаюсь их отобразить, он отобразит, например, ¼ вместо ü.

Он работает на моей локальной машине, и единственная разница, которую я могу найти (и, скорее всего, корень проблемы), заключается в том, что для collation_server установлено значение latin1_swedish_ci на моей машине, utf8_general_ci на dev-сервере, а character_set_server - latin1 on моя машина, utf8 на dev-сервере. (Все остальное установлено на utf8 на обеих машинах.)

Я думал, что utf8 - лучшая вещь для использования, поэтому теперь я не уверен, должен ли я изменить сервер dev таким же, как мой локальный компьютер, который работает , то есть использовать латинский язык или изменить локальную машину на то же, что и на сервере-разработчике, и искать другое решение проблемы? Есть предположения?

Спасибо,

Аннели

+0

Можете ли вы пр ovide шестнадцатеричный дамп ('SELECT HEX (столбец) FROM table') данной строки? – NullUserException

+0

@NullUserException - 426164656E2D57C3BC727474656D62657267 является шестнадцатеричным для Баден-Вюртемберга. – annelie

+0

Хорошей новостью является то, что она правильно хранится как UTF-8 в базе данных. – NullUserException

ответ

3

Установите строку подключения следующим образом:

"server=<server>;port=<port>;database=<db>;uid=<uid>;pwd=<password>;charset=utf8;" 

Пример:

"server=localhost;port=3306;database=mydb;uid=root;pwd=root;charset=utf8;" 

(добавить charset=utf8 к нему)

+0

Yessssss! Это сделал трюк, большое спасибо! – annelie

Смежные вопросы