У меня есть два файла PHP, и когда я извлекаю данные из базы данных на этих страницах и отображаю их с помощью print_r
, обе страницы отображают содержимое по-разному.Специальные символы HTML не отображаются должным образом
На самом деле у меня есть некоторые специальные символы HTML в моем контенте, с которыми я сбежал, используя htmlspecialchars
перед строкой в базе данных MySQL.
, когда я получать их отображения на page1.php он отображается как
My ‘pop’ to display
но page2.php отображается его как
My ‘pop’ to display
Я также хочу отметить, что page1.php это моя веб-страница, и у меня есть print_r, чтобы проверить проблему на странице2.php, где page2.php - это страница api, где я использовал echo json_encode для записи данных, но для проверки проблемы я заменил ее print_r
Я думаю, его проблема с выпуском utf8, поэтому перед запуском json_encode используйте функцию utf8_encode, затем запустите json_code –
«Я избежал использования' htmlspecialchars' перед строкой в базе данных MySQL ». Ну, есть твоя проблема. ** Не делайте этого **. Вы должны вставлять свои данные с помощью SQL-экранирования, а не из HTML-экранирования. Выражение HTML должно использоваться, когда вы показываете вещи на странице и только тогда. – tadman
Я пробовал, но utf8_encode не работает в этом случае –