mysql_real_escape_string и проблема апострофа
-
11-10-2019 - |
Вопрос
Итак, я использовал MySQL_REAL_ESCAPE_STRING для вставки данных в свою базу данных ... но потом, когда я это делаю, это заменяет все апострофы на символ €
Итак, вместо того, чтобы отобразить это, он отображает это .......
Есть ли способ восстановить эти «апострофы», когда я читаю обратно из базы данных?
Решение
Это какая -то проблема кодирования персонажа.
Потому что в UTF-8, ’
(U+2019) кодируется 0xE28099. И это представляет персонажей â
(0xe2), €
(0x80), и ™
(0x99) в Windows-1252.
Так кажется, что ты просто забыл Укажите должным образом кодировку вашего выходного символа так что браузер использует свой символ по умолчанию, кодирующий Windows-1252.
Другие советы
Подать заявление mysql_set_charset
UTF-8 в вашем PHP.
Убедитесь, что ваша база данных и приложение используют тот же кодирование символов.
В бинарном, '
идентично по цене ’
, поэтому вам необходимо убедиться, что кодирование установлено одинаково.
В вашем приложении PHP вы можете указать это со следующими двумя строками.
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);
Это устанавливает ваше приложение для использования набора символов UTF-8, который вы должны убедиться, что соответствует сопоставлению вашей базы данных, а затем ваша проблема исчезнет.
Вы можете программически изменить набор символов базы данных с помощью mysql_set_charset
функция