У меня есть таблица с именем adbase
, в которой есть поле HTML с именем DescriptionHtmlString
, это определение таблицы:
CREATE TABLE `adbase` (
AdBaseId bigint(20) NOT NULL AUTO_INCREMENT,
UserId bigint(20) NOT NULL,
Title varchar(100) CHARACTER SET utf8 DEFAULT NULL,
DescriptionHtmlString varchar(14000) CHARACTER SET utf8 DEFAULT NULL,
-- more columns
теперь я ввожу следующий HTML-текст в DescriptionHtmlString
:
<div class = "respect-p">
<article>
<ul>
<li><p><b>Maintenance Manager role within an iconic, exciting and challenging business</b></p></li>
<li><p><b>Attractive remuneration package on offer</b></p></li>
</ul>
<p class = "p1"></p>
<!--
more html text ...
-->
Проблема в том, что когда я пишу приведенный выше текст в таблицу MySQL, пустой абзац: <p class = "p1"></p>
становится: <p class = "p1">?</p>
в БД.
Я попытался отладить код, чтобы выяснить, где добавлен вопросительный знак, это самый последний шаг перед тем, как Entity Framework добавит html-текст в БД, и текст все еще содержит: <p class = "p1"></p>
Я также зафиксировал оператор SQL, который выполняет EF (из окна вывода), и даже тогда в абзаце нет вопросительного знака:
Но когда я читаю значение, записанное в БД, добавляется вопросительный знак:
У вас есть невидимый персонаж в этом месте. Ваш код показывает? так как он не настроен на отображение невидимого персонажа.
Изначально вы должны очистить свой ввод перед вставкой, если вы не хотите таких символов. Если вы хотите удалить это из базы данных, выполните простое обновление: «обновите набор Adbase DescriptionHtmlString = replace (DescriptionHtmlString, 'COPY_PASTE_THE_CHARACTER_HERE', '');". Речь идет о символе Unicode ZERO WIDTH SPACE (U+200B).
Спасибо, это было именно так, как вы сказали, символ ZERO WIDTH SPACE (о котором я никогда раньше не слышал)
Спасибо, есть идеи, как убрать невидимого персонажа?