2013-09-27 2 views
0

Сохранение некоторых значений в базе данных mysql, вход в систему дезинформируется mysql_real_escape_string($value), и он отображает штраф. Однако при выполнении прямого запроса в базе данных я вижу символы как †в каждом текстовом поле, которое было отредактировано с использованием этой формы. Как это происходит? Он не отображается, когда я показываю значения на веб-страницах, но как я могу предотвратить появление этих символов вообще?â € символов в базе данных mysql

Я посмотрел на этот вопрос: Strange characters in mysql dbase, который, казалось, имел некоторый совет по установке имен символов на входе, но как я могу исправить это для раз и навсегда? Я считаю, что человек, который обновляет эти значения, копирует и вставляет непосредственно из Microsoft Word, поэтому я уверен, что он имеет какое-то отношение к «умным кавычкам» и другим таким причудливым форматам, которые нравится MS Word.

+2

Прочтите это тоже http://stackoverflow.com/questions/279170/utf-8-all-the-way-through-my-web-application-apache-mysql-php –

ответ

1

Как ответ, который вы связали, он исходит из PHP, который по умолчанию подключается к mysql с кодировкой latin1. Таким образом, данные не были правильно вставлены в базу данных. Другая проблема заключается в том, что если вы запрашиваете данные в php, вы получаете правильные данные, поскольку они «декодируются» так же, как они закодированы. Но если вы выполняете прямой запрос в базе данных (скажем, с клиентом mysql на консоли), данные кажутся нарушенными.

Вот почему ответ заключается в запросе «УСТАНОВИТЬ НАЗВАНИЯ UTF8» перед чем-либо еще. Вы можете указать сервер mysql для принудительного использования utf8 при любом соединении. Я не вижу другого решения.

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