Intereting Posts
Свойство веб-фильтра CSS3-фильтра PHP – определить страну Как я могу использовать кнопку сброса для php-формы? Загрузите программу с помощью PHP в поле HP-UX Уведомление об ошибке чтения с уведомлением PHP Apple Enhanced Push Notification Как установить более старую версию PHPUnit через PEAR? Измените эту функцию js так, чтобы она использовала значение, полученное из db вместо значений, указанных в массиве, для генерации опций Select PHP: автозагрузка классов, распределенных между PEAR, в конфликтах между классами PSR-0 Вызов неопределенной функции oci_connect, php_oci8_12c.dll, windows 8.1, php5.6.6 Обработка Laravel HttpException в модульном тестировании Сообщения электронной почты распространяются на спам при использовании имени домена в теге Проблема PHP Phar – file_exists () УДАЛИТЬ запись в строке в PHP PHP, как перебирать массив сообщений Почему я не могу выполнять математику в объявлении свойства класса?

Сохранить акценты в базе данных MySQL

Я пытаюсь сохранить французские акценты в своей базе данных, но они не сохраняются, как в DB.
Например, «é» сохраняется как «Ã ©».
Я попытался установить мои файлы в «Unicode (utf-8)», поля в БД «utf8_general_ci», а также сам БД.
Когда я смотрю на мои данные, отправленные через AJAX с Firebug, я вижу, что акцент передан как «é», так что это правильно.

Спасибо и дайте мне знать, что вам нужна дополнительная информация!

Related of "Сохранить акценты в базе данных MySQL"

Лично я решил ту же проблему, добавив после кода подключения MySQL :

mysql_set_charset("utf8");

или: mysqli_set_charset("utf8");

или эквивалент POO : $mysqli_link->set_charset("utf8");

И иногда вам нужно будет определить основную кодировку php , добавив этот код: mb_internal_encoding('UTF-8');

На стороне клиента HTML вы должны добавить следующие данные заголовка:

 <meta http-equiv="Content-type" content="text/html;charset=utf-8" /> 

Чтобы использовать результаты JSON AJAX (например, с помощью jQuery), вы должны определить заголовок, добавив:

 header("Content-type: application/json;charset=utf8"); json_encode( some_data ); 

Это должно сделать трюк

Лучше всего, чтобы ваше соединение с базой данных не кодировалось в кодировке UTF-8 – обычно это ISO-8859-1 по умолчанию.

Попробуйте отправить запрос

 SET NAMES utf8; 

после подключения.

mysqli_set_charset ($ conn, "utf8");

если вы используете PDO, вы должны создать такой способ:

 new \PDO("mysql:host=$host;dbname=$schema", $username, $password, array(\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8') ); 

Просмотрели ли вы http://dev.mysql.com/doc/refman/5.0/en/charset-unicode.html :

Клиентские приложения, которые должны взаимодействовать с сервером с помощью Unicode, должны соответственно установить набор символов клиента; например, путем выдачи инструкции SET NAMES 'utf8'. ucs2 не может использоваться в качестве набора символов клиента, а это означает, что он не работает для SET NAMES или SET CHARACTER SET. (См. Раздел 9.1.4, «Наборы символов набора символов и сортировки».)

Кроме того:

если вы получаете данные через php из вашего mysql-db (все utf-8), но все равно получаете?? для некоторых специальных символов в вашем браузере (), попробуйте следующее:

после mysql_connect () и mysql_select_db () добавьте следующие строки: mysql_query ("SET NAMES utf8");

работал на меня. Я сначала попытался использовать utf8_encode, но это работало только для äüöéè … и так далее, но не для кириллических и других символов.

Используйте UTF8:

Установите мета в своем

 <meta http-equiv="Content-type" content="text/html;charset=utf-8" /> 

Когда вы подключаетесь к своей базе данных mySQL, принудительно кодируйте, чтобы вы НЕ ДОЛЖНЫ играть с настройками mysql

 $conn = mysql_connect('server', 'user', 'password') or die('Could not connect to mysql server.'); mysql_select_db('mydb') or die('Could not select database.'); mysql_set_charset('utf8',$conn); //THIS IS THE IMPORTANT PART 

Если вы используете AJAX, установите кодировку следующим образом:

 header('Content-type: text/html; charset=utf-8'); 

Вам необходимо: a) убедиться, что ваши таблицы используют кодировку символов, которая может кодировать такие символы (UTF-8 имеет тенденцию быть кодировкой go-to в эти дни), и b) убедитесь, что ваши сообщения форм отправляются в базу данных в то же кодирование символов. Вы делаете это, сохраняя свои HTML / PHP / любые файлы как UTF-8 и включая в себя метатег в голове, который сообщает браузеру использовать кодировку UTF-8.

 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

О, и не забывайте, C, когда вы подключаетесь к базе данных, убедитесь, что на самом деле вы используете правильный набор символов, выполнив SET NAMES charset = utf8 (возможно, это не правильный синтаксис, мне нужно будет посмотреть, что это должно быть, но это будет по этим направлениям)

PHP (.net) советует не устанавливать кодировки после подключения с помощью запроса, например SET NAMES utf8, потому что ваша функция для экранирования данных внутри операторов MySQL может работать не так, как предполагалось.

Не используйте SET NAMES utf8, но используйте соответствующую функцию (или метод) …_ set_charset () вместо этого, если вы используете PHP.