Текстовый прогон не находится в форме нормализации Unicode C
Пока я пытался проверить свой сайт (http://dvartora.com/DvarTora/), я получаю следующую ошибку:
Текстовый прогон не находится в форме нормализации Unicode C
A: Что это значит?
B: Могу ли я исправить это с помощью notepad++ и как?
C: Если B нет, как я могу исправить это с помощью бесплатных инструментов (а не Dreamweaver)?
Ответы
Ответ 1
а. Это означает, что он говорит (см. Объяснение dan04s для краткого ответа и Unicode Standard для длинного), но это просто указывает, что авторы валидатора хотели выдать предупреждение. Правилам HTML5 не требуется форма нормализации C (NFC); это скорее что-то вообще одобренное W3C.
B. Нет необходимости ничего исправить, если вы не решите, что использование NFC на самом деле будет лучше. Если да, то есть различные инструменты для автоматического преобразования в NFC, такие как бесплатный BabelPad редактор. Если вам нужно только иметь дело с одним символом не в NFC, вы можете использовать репозитории информации о символах, такие как поиск символа Fileformat.info, чтобы узнать каноническую разложение символа и его использование.
Используете ли вы NFC или нет, зависит от многих соображений и от задействованных символов. Как правило, NFC работает лучше, но в некоторых случаях альтернативная презентация, отличная от NFC, обеспечивает более подходящую визуализацию или улучшает работу в некоторой конкретной обработке.
Например, в дублированном вопросе ссылка Ω
была сообщена как инициирующая сообщение. (Валидатор фактически проверяет символы, введенные в качестве таких ссылок, также, а не только проверку уровня NFC на уровне текста.) Ссылка означает U + 2126 OHM SIGN "Ω", которая определена как каноническая эквивалентная U + 03A9 GREEK CAPITAL ПИСЬМО OMEGA "Ω". В стандарте Unicode явно указано, что последний является предпочтительным. Он также лучше распространяется на шрифты. Но если у вас есть специальная причина использовать OHM SIGN, вы можете сделать это, не нарушая действующих правил HTML5, и вы можете игнорировать предупреждение валидатора.
Ответ 2
Что это значит?
От W3C:
В Unicode можно производить тот же текст с разными последовательностями символов. Например, возьмите Венгерское слово világ. Четвертый письмо может быть сохранено в памяти как precomposed U + 00E1 ЛАТИНСКОЕ МАЛОЕ ПИСЬМО A С ОСТРОМ (одно символ) или как разложенпоследовательность U + 0061 LATIN SMALL LETTER A, за которым следует U + 0301 КОМБИНИРОВАНИЕ ОСТРЫ ACCENT (два символа).
világ = világ
Стандарт Unicode позволяет либо эти альтернативы, но требует, чтобы оба они считаются идентичными. к повысить эффективность, приложение обычно будет нормализовать текст до выполнения поисков или сравнений. Нормализация в этом случае означает преобразование текста для использования всех предварительно составленные или все разложенные символы.
Существует четыре формы нормализацииуказанный в стандарте Unicode: NFC, NFD, NFKC и NFKD. Стойки С для (предварительно), и D для разлагаются. K означает совместимость. Улучшить совместимость, W3C рекомендует использование стандартного текста NFCв Интернете.
Кроме того, "чтобы улучшить взаимодействие", предварительно помеченный текст обычно выглядит лучше, чем разлагает текст.
Как я могу исправить это с помощью бесплатных инструментов
Используя функцию, эквивалентную Python text = unicodedata.normalize('NFC', text)
на вашем любимом языке программирования.
(Или, если вы не планируете писать программу, ваш вопрос должен быть перенесен на суперпользователя или веб-мастера.)