В базе данных есть множество записей, которые не были экранированы, потому что они были введены вручную при вставке, поэтому они выглядят так: Не внутри записи, но когда я пытаюсь отобразить их, они имеют странные символы при выводе в PHP . Прежде чем помещать что-либо в базу данных, я обычно использовал mysqli_real_escape_string, а затем делал то же самое, когда иду для извлечения данных, но, поскольку данные уже сохранены без использования real_escape, как мне правильно отобразить их?
Символ, отображаемый вместо одинарных кавычек, выглядит так: �
Если это помогает, данные сохраняются как «текст».
Спасибо!
Для будущих пользователей той же проблемы вот шаги:
- Проверьте заголовки вашего веб-сайта, чтобы узнать, какая кодировка
- Проверьте столбцы таблицы mysql и убедитесь, что они совпадают.
- Если они не меняют их, чтобы соответствовать. utf8_general в mysql и utf8 в моем HTML сработали для меня
- Вам придется вернуться к старым таблицам mysql и обновить их, чтобы новая кодировка была установлена правильно.
- Новые записи должны работать нормально
- Когда вы выводите свои результаты в PHP (или, я думаю, на любом языке, который вы используете), в зависимости от того, используете ли вы какую-либо проверку, вам, возможно, придется использовать mysqli_real_escape_string или аналогичную функцию, такую как stripslashes()