Как заставить символ замены превращаться в объект html в PHP?

Я имею дело с заменяющим символом внутри базы данных MySQL … и это нормально, если он остается там, но я пытаюсь его отредактировать. Моя форма отображает символ в виде алмазной формы с вопросительным знаком в нем ( ). Поэтому я отправляю форму, я сравниваю данные между данными в форме и данными, чтобы увидеть, изменилась ли она. Проблема здесь в том, что когда я отправляю форму, она заменяет символ замены на & # 65533; который является эквивалентом сущности html, поэтому, когда это происходит, оно не сравнивается, и код думает, что строка изменилась – что у нее есть, но не совсем. Я попытался использовать разные методы превращения заменяющего символа в эквивалент сущности html из базы данных при ее сравнении – он начинает превращать другие, казалось бы, обычные символы в другой эквивалент эквивалента символа html, и превращать объекты html в заменяющий персонаж, который просто не работает для этого, но оба они терпят неудачу. И да, я пробовал html_entity_decode () и htmlspecialchars_decode ()

Мои вопросы: Как я могу заставить символ замены превращаться в объект html?

По какой-то причине веб-браузер отправляет ЗАМЕНА ХАРАКТЕРА (U + FFFD), поскольку он десятичный, числовой HTML Entitiy: � , Вероятно, вы уже выводили его в браузер?

Однако, если вы ожидаете, что ввод содержит объекты HTML, вам необходимо их декодировать, если вы не хотите хранить их в своей базе данных в формате HTML. Чтобы декодировать числовые объекты в пределах кодируемой строки UTF-8 $str :

 $convmap = array (0, 0x10FFFF, 0, 0xFFFFFF); $output = mb_decode_numericentity($str, $convmap, 'UTF-8'); 

Этот код действительно выполняет преобразование, которое вы ищете ( Demo ), однако сначала вы должны выяснить, почему представлен цифровой объект HTML.

Поскольку вы предпочитаете unicode, я предлагаю вам использовать UTF-8 для веб-страницы:

 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 

и для формы:

 <form action="" method="post" accept-charset="utf-8"> 

удачи.

Проверьте кодировку на html (например)

 <meta http-equiv="Content-Type" content="text/html; charset=<your_charset>"> 

и в вашей базе данных (например, в MySQL)

 DEFAULT CHARACTER SET <your_charset> COLLATE <your_collate> 

Он должен быть равным.