Подтвердить что ты не робот

Почему этот символ отображается в Chrome, а не в Firefox или Edge?

Таким образом, эта веб-страница представляет собой рендеринг с этими символами, и они находятся на этом веб-сайте или в приложении, но ни на одном другом сайте. Может ли кто-нибудь сказать мне 1) Какой символ 2) почему он отображается только в одном браузере?

введите описание изображения здесь

4b9b3361

Ответ 1

Этот символ является разделителем строк U + 2028, который является своего рода символом новой строки. Подумайте об этом как эквивалент Unicode HTML <br>.

Что касается причин, почему это проявляется здесь: я предполагаю, что внутренняя база данных использует LSEP, чтобы не конфликтовать с буквальными символами новой строки или HTML-тегами (которые могут привести к повреждению базы данных или вызвать ошибки безопасности) и либо:

  • Сценарии на стороне сервера, которые преобразуют базу данных в HTML, игнорируются, чтобы заменить LSEP на <br>
  • Chrome просто нарушает стандарты, отображая LSEP как печатный (видимый) символ, или
  • У вас установлен шрифт, который отображает LSEP как символ печати, который обнаруживает только Chrome. Чтобы выяснить, какой шрифт он есть, щелкните правой кнопкой мыши на нарушающем текст и нажмите "Осмотреть", а затем перейдите на вкладку "Вычисление" на правой панели. В самом низу вы должны увидеть раздел с надписью "Rendered Fonts", который поможет вам найти нарушающий шрифт.

Дополнительная информация о разделителе строк, взятом из стандарта Unicode, глава 5.8, Новые правила (на стр. 12 этого PDF):

Сепаратор линии и разделитель параграфов

Сепаратор абзаца, не зависящий от того, как он закодирован, используется для обозначения разделение между параграфами. Разделитель строк указывает, где разрыв строки один должен произойти, как правило, в абзаце. Например:

Это абзац с разделителем строк в этот момент,
  в результате чего слово "причинение" появляется на другой строке, но не вызывает   типичный абзац абзаца, нарушение предложения, межстрочный интервал или   изменение в флеш (правый, центральный или левый абзацы).

Для сравнения, разделители строк в основном соответствуют HTML <br>, и разделители абзацев для более старого использования HTML <P> (современные HTML-ограничения абзацев, заключая их в <P>...</P>). В текстовых процессорах, параграф разделители обычно вводятся с клавиатуры RETURN или ENTER; линия разделители обычно вводятся с использованием измененных RETURN или ENTER, таких как SHIFT-ENTER.

Разделитель записей используется для разделения записей. Например, при обмене табличные данные, общий формат - это вкладка-разделение ячеек и использование CRLFв конце строки ячеек. Эта функция не является точно такой же, как строка разделение, но часто используются одни и те же символы.

Традиционно NLF запускается как разделитель строк (и иногда записывается разделитель). Он по-прежнему используется как разделитель строк в простых текстовых редакторах, таких как программных редакторов. Поскольку платформы и программы начали обрабатывать обработку текстов с автоматическим оберткой, эти символы были переинтерпретированы, чтобы разделители абзацев. Например, даже такие простые программы, как Windows Программа "Блокнот" и программа Mac SimpleText интерпретируют свои платформы NLFкак разделитель абзацев, а не разделитель строк. Как только NLF был переинтерпретирован обозначить разделитель абзацев, в некоторых случаях другой контрольный характер нажата в качестве разделителя строк. Например, вертикальная табуляция VT используется в Microsoft Word. Однако выбор символа для разделителя строк еще менее стандартизирован, чем выбор символа для NLF. Многие Интернет протоколов и много существующего текста обрабатывают NLF как разделитель строк, поэтому разработчик не может просто рассматривать NLF как разделитель абзацев во всех обстоятельства.

Дальнейшее чтение:

Технический отчет Unicode № 13: Принципы новой строки

Диаграмма общей пунктуации (U + 2000-U + 206F) PDF

SE: Почему в Unicode так много пробелов и разрывов строк?

SO: Что такое символ Unicode 2028 (LS/Line Separator), используемый для?

U + 2028 на codepoints.net Опечатка здесь говорит о том, что U + 2028 был добавлен в версии 1.1 стандарта Unicode, который false - он был добавлен в 1.0

Ответ 2

Вы можете использовать этот инструмент... http://www.nousphere.net/cleanspecial.php

... удалить все специальные символы, отображаемые в Chrome.

Шаги: Вставьте свой HTML и очистите с помощью HTML-опции.

Вы можете вручную удалить символы в редакторе на этой странице и увидеть результат.

Вставьте обратно свой HTML файл в файл и сохраните:)

Ответ 3

9999years ответы велики.

Если вы используете Symfony с шаблоном Twig, я бы рекомендовал проверить пустой блок Twig. В моем случае это был пустой блок Twig с невидимым char внутри.

LSEP char отображается только на определенном устройстве/браузере. С другой стороны, у меня было пустое пространство над заголовком, и я не видел невидимого char.

Мне пришлось проверить запрос GET, чтобы увидеть, что значение 1f18 было до открытого тега html.

Как только я удалил пустой блок Twig, он исчез.

надеюсь, что это может помочь кому-то в один прекрасный день...

Ответ 4

Недавно я столкнулся с этой проблемой, попробовал ряд исправлений, но в конечном итоге мне пришлось вставить текст в VIM, и мне пришлось удалить лишнее пространство. Я попробовал несколько очистителей HTML, но никто из них не работал, VIM был ключом!

Ответ 5

Я согласен с @Kapil Bathija. В принципе вы можете скопировать и вставить свой HTML-код в http://www.nousphere.net/cleanspecial.php и преобразовать его.

Затем он преобразует специальные символы для вас - просто удалите пробелы между словами, и вы поймете, что вам нужно нажать backspace 2x, то есть есть недопустимый символ, который нельзя перевести.

У меня была такая же проблема, и после этого она работала отлично.