Text run is not in unicode normalization form c как исправить

A. It means what it says (see dan04’s explanation for a brief answer and the Unicode Standard for a long one), but it simply indicates that the authors of the validator wanted to issue the warning. HTML5 rules do not require Normalization Form C (NFC); it is rather something generally favored by the W3C.

B.There is no need to fix anything, unless you decide that using NFC would actually be better. If you do, then there are various tools for automatic conversion to NFC, such as the free BabelPad editor. If you only need to deal with one character not in NFC, you can use character information repositories such as Fileformat.info character search to find out the canonical decomposition of the character and use it.

Whether you use NFC or not depends on many considerations and on the characters involved. As a rule, NFC works better, but in some cases, an alternative, non-NFC presentation produces more suitable rendering or works better in some specific processing.

For example, in a duplicate question, the reference has been reported as triggering the message. (The validator actually checks for characters entered as such references, too, instead of just plain text level NFC check.) The reference stands for U+2126 OHM SIGN “Ω”, which is defined to be canonical equivalent to U+03A9 GREEK CAPITAL LETTER OMEGA “Ω”. The Unicode Standard explicitly says that the latter is the preferred character. It is also better covered in fonts. But if you have a special reason to use OHM SIGN, you can do that, without violating current HTML5 rules, and you can ignore the validator warning.

gularon

1 / 1 / 0

Регистрация: 02.02.2017

Сообщений: 14

1

16.05.2022, 10:52. Показов 1166. Ответов 4

Метки unicode, utf, ошибка (Все метки)


Студворк — интернет-сервис помощи студентам

Добрый день.
Валидатор выдаёт ошибку: Text run is not in Unicode Normalization Form C
Ошибка на этой строке:

HTML5
1
<p><a href="https://www.youtube.com/watch?v=W4MIiV4nZDY&ab_channel=BogdanStashchuk">Полный Курс HTML Для Начинающих. Ссылка <b>на очень понятный</b> видеоурок по теме</a></p>

Вот ссылка на сайт: http://g91697u1.beget.tech/

Либо вот весь код страницы:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<!doctype html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Белки</title>
</head>
<body>
    <h1>Белок – основа жизни на планете, ее основной элемент.</h1>
    <h2>Белки — это углеродные вещества, состоящие из цепочки аминокислот.</h2>
    <h3>Белки состоят из следующих химических элементов: углерод (50-55%), кислород (20-23%), азот (12-19%), водород (6-7%), сера (0,2-3,0%).</h3>
    <h4>Другое название белков – протеины – было выбрано неслучайно, т.к. с греческого слово «proteois» переводится как «первостепенной важности».</h4>
    <h5>Белки подразделяются на: животные (мясо, рыба, птица, молочные продукты) и растительные (орехи, соя, горох, фасоль). При этом на животные белки должно приходится около 60%.</h5>
    <h6>Взрослый человек на 60 % состоит из воды, на 19 % из белков, на 15 % из жиров, 5 % в нем минеральных веществ и 1 % углеводов.</h6>
    <p>Аминокислоты - это строительный материал для всех белков в организме, из которых образуются мышцы, сухожилия, связки, кожа, волосы. В фитнесе и бодибилдинге они необходимы для повышения эффективности тренировок и наращивания мышечной массы. Аминокислоты помогают быстро восстановиться и избавиться от болей после интенсивных занятий.</p>
    <img src="https://bud-v-forme.ru/upload/_resize/780_430/5312_900x420.jpg"/>орлр
    <p><a href="https://www.youtube.com/watch?v=W4MIiV4nZDY&ab_channel=BogdanStashchuk">Полный Курс HTML Для Начинающих. Ссылка <b>на очень понятный</b> видеоурок по теме</a></p>
</body>
</html>

Что здесь не так, подскажите пожалуйста



0



Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

16.05.2022, 10:52

Ответы с готовыми решениями:

Ошибка run time error 6 overflow, что не так? (без cost.Text = c6 вроде сначала робил, а потом удалял и всё равно ошибка
Dim h, w, l, wr, lr, p, a As String

Private Sub CommandButton1_Click()

h = InputBox(&quot;Введите…

Ошибка с графикой в приложении Windows form (ошибка не в коде!)
Всем доброго времени суток! Написал программу в windows form. Несколько раз скомпилировал и все…

При попытке запуска user form”” через double click выплывает ошибка run error time 9
Всем привет при запуске user form-&quot;UPDATE_TRAINING&quot; через двойной клик в умной таблице:…

Run time error when trying to unload modal form
I am getting run time error when trying to unload modal form.
This form has a list control with…

Как скрыть тег Run Text или ToolTip?
Я создал всплывающую подсказку. Если он имеет ценность, он показывается, если не имеет ценности, он…

4

536 / 348 / 193

Регистрация: 07.11.2018

Сообщений: 1,213

16.05.2022, 11:27

2

Да с этим постом всё неправильно.Рекламим курс хтмл а текст пишем без тэгов

Цитата
Сообщение от gularon
Посмотреть сообщение

g”/>орлр

причём текст какой-то нездоровый.Вобщем сносить надо сайт пока не поздно, ато заразите ещё весь домен.



0



1 / 1 / 0

Регистрация: 02.02.2017

Сообщений: 14

16.05.2022, 11:33

 [ТС]

3

да это пробник…я только учусь и пытаюсь разобраться в мелочах. Почему все таки валидатор показывает ошибку на этой строке?



0



DimaxDe

536 / 348 / 193

Регистрация: 07.11.2018

Сообщений: 1,213

16.05.2022, 11:51

4

XML
1
2
3
4
5
6
7
В Юникоде можно создать один и тот же текст с разными последовательностями символов. Например, возьмем венгерское слово világ. Четвертая буква может храниться в памяти как предварительно сложенная U+00E1 LATIN SMALL LETTER A WITH ACUTE (один символ) или как разложенная последовательность U+0061 LATIN SMALL LETTER A с последующим U+0301 COMBINING ACUTE ACCENT (два символа).
 
világ = világ
 
Стандарт Unicode допускает любую из этих альтернатив, но требует, чтобы обе они рассматривались как идентичные. Для повышения эффективности приложение обычно нормализует текст перед выполнением поиска или сравнения. Нормализация в данном случае означает преобразование текста для использования всех предварительно сложенных или всех разложенных символов.
 
Существует четыре формы нормализации, определенные стандартом Юникод: NFC, NFD, NFKC и NFKD. Символ C означает (пре)композицию, а D - декомпозицию. К означает совместимость. Для улучшения совместимости W3C рекомендует использовать в Интернете нормализованный текст NFC.

стыбзено и переведено специально для вас на другом форуме .источник не указываю ..т.к злой админ

Добавлено через 3 минуты
русские тексты повесить на переменные и нормализовать типо так

Код

text = unicodedata.normalize('NFC', text)



2



1 / 1 / 0

Регистрация: 02.02.2017

Сообщений: 14

16.05.2022, 12:08

 [ТС]

5

спасибо, я понял

удалил весь русский текст в ссылке на этой строке и забил его снова – ошибки нет…возможно была англ. буква “с” вместо русской “с”

спасибо в любом случае



1



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

16.05.2022, 12:08

5

Пока я пытался проверить свой сайт (http://dvartora.com/DvarTora/), я получаю следующую ошибку:

Текстовый прогон не находится в форме нормализации Unicode C

A: Что это значит?

B: Могу ли я исправить это с помощью notepad++ и как?

C: Если B нет, как я могу исправить это с помощью бесплатных инструментов (а не Dreamweaver)?

4b9b3361

Ответ 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) на вашем любимом языке программирования.

(Или, если вы не планируете писать программу, ваш вопрос должен быть перенесен на суперпользователя или веб-мастера.)

A. Это означает то, что он говорит (см. Объяснение dan04 для краткого ответа и стандарт Unicode для длинного), но это просто указывает на то, что авторы валидатора хотели выдать предупреждение. Правила HTML5 не требуют формы нормализации C (NFC); это скорее то, что обычно одобряет W3C.

Б. Нет необходимости ничего исправлять, если только вы не решите, что использование NFC действительно будет лучше. Если да, то есть различные инструменты для автоматического преобразования в NFC, такие как бесплатный BabelPad редактор. Если вам нужно иметь дело только с одним персонажем не в NFC, вы можете использовать репозитории символьной информации, такие как Fileformat.info поиск символов чтобы узнать каноническое разложение персонажа и использовать его.

Используете ли вы NFC или нет, зависит от многих факторов и персонажей. Как правило, NFC работает лучше, но в некоторых случаях альтернативное представление без NFC дает более подходящий рендеринг или лучше работает при определенной обработке.

Например, в повторяющемся вопросе ссылка было зарегистрировано как инициирующее сообщение. (Валидатор фактически проверяет символы, введенные в качестве таких ссылок, а не просто проверку NFC на уровне обычного текста.) Ссылка означает U + 2126 OHM SIGN «Ω», который определен как канонический эквивалент U + 03A9 GREEK CAPITAL. ПИСЬМО ОМЕГА «ОМ». В стандарте Unicode явно указано, что последний является предпочтительным символом. Он также лучше покрыт шрифтами. Но если у вас есть особая причина использовать OHM SIGN, вы может сделайте это, не нарушая текущих правил HTML5, и вы можете игнорировать предупреждение валидатора.

This seems to a be a feature/bug in WebKit browsers (Chrome, Safari); they normalize form data to NFC, which means, among other things, reordering consecutive combining marks to a “canonical” order. This was new to me, and bad news in cases like this. The worst thing is that different browsers behave differently.

Using a simplified version of your test case http://blog.hibernatingrhinos.com/12449/would-it-be-possible-to-have-a-web-browser-based-editor-for-an-hebrew-text (using a server-side script that just echoes the raw data), I noticed that Chrome and Safari reorder the diacritic marks in U+05E9 U+05C1 U+05B5 (SHIN, SHIN DOT, TSERE), whereas IE, Firefox, and Opera do not.

I also ran a simple test with Latin letter e followed by combinining diaeresis U+0308. WebKit browsers convert it to the single character ë, as per NFC rules, whereas other browsers keep the character pair intact.

This seems to be an intentional feature, ever since 2006; https://bugs.webkit.org/show_bug.cgi?id=8769 proudly announces this as part of a bug fix! This might explain the status of the W3C policy document; its current version is WebKit-minded in this issue, but other browser vendors either aren’t interested or knowingly oppose the idea of “early normalization.”

I don’t think there is a way to prevent this. But you could warn users against using Chrome and Safari. You could even use a hidden field containing a simple problem case, then check server side whether it was transmitted as−is, and tell the user to change browser if it isn’t.

Fixing the order server-side isn’t simple, because common normalization routines apparently do not support the order needed. You could normalize to fully decomposed form (NFD), then reorder combining marks using your own code for the purpose. Perhaps simpler and safer, you could just run an ad hoc replacement routine that replaces sequences of combining marks with other sequences. This would be safer because it would not affect characters other than those you want to affect, whereas NFD decomposes Latin letters with diacritics, among other things.

According to Unicode principles, canonically equivalent strings (e.g., differing only in the order of consecutive diacritic marks) are different representations of the same data but distinct as sequences of Unicode characters (code points); they are not expected to differ in presentation, but they may, and often do. Generally, you should not expect programs to treat canonically equivalent strings as different, though programs may make a difference. See Unicode Normalization FAQ.

The FAQ entry claims that the problems of biblical Hebrew have been solved by the introduction of COMBINING GRAPHEME JOINER. Although it prevents the reordering in Chrome, it’s a clumsy method, and it may mess up rendering (it does in web browsers; diacritic marks may get badly misplaced).

Добавить комментарий