В базе данных MySQL есть неэкранированные одинарные кавычки ... Как их показать? - PullRequest
0 голосов
/ 13 сентября 2009

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

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

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

Спасибо!


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

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

1 Ответ

3 голосов
/ 13 сентября 2009

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

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

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

...