В базе данных MySQL есть неэкранированные одинарные кавычки. Как их показать?

В базе данных есть множество записей, которые не были экранированы, потому что они были введены вручную при вставке, поэтому они выглядят так: Не внутри записи, но когда я пытаюсь отобразить их, они имеют странные символы при выводе в PHP . Прежде чем помещать что-либо в базу данных, я обычно использовал mysqli_real_escape_string, а затем делал то же самое, когда иду для извлечения данных, но, поскольку данные уже сохранены без использования real_escape, как мне правильно отобразить их?

Символ, отображаемый вместо одинарных кавычек, выглядит так: �

Если это помогает, данные сохраняются как «текст».

Спасибо!


Для будущих пользователей той же проблемы вот шаги:

  • Проверьте заголовки вашего веб-сайта, чтобы узнать, какая кодировка
  • Проверьте столбцы таблицы mysql и убедитесь, что они совпадают.
  • Если они не меняют их, чтобы соответствовать. utf8_general в mysql и utf8 в моем HTML сработали для меня
  • Вам придется вернуться к старым таблицам mysql и обновить их, чтобы новая кодировка была установлена ​​​​правильно.
  • Новые записи должны работать нормально
  • Когда вы выводите свои результаты в PHP (или, я думаю, на любом языке, который вы используете), в зависимости от того, используете ли вы какую-либо проверку, вам, возможно, придется использовать mysqli_real_escape_string или аналогичную функцию, такую ​​как stripslashes()

person krx    schedule 13.09.2009    source источник


Ответы (1)


Вам нужно будет прочитать о кодировании текста.

Обычное решение состоит в том, чтобы убедиться, что все (кодировка типа контента на ваших страницах и ваш mysql) настроено на UTF-8.

Скорее всего, ваши данные - Latin1, а вы отображаете UTF-8 или наоборот.

person JasonWoof    schedule 13.09.2009