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, ошибка (Все метки)
Добрый день.
Вот ссылка на сайт: http://g91697u1.beget.tech/ Либо вот весь код страницы:
Что здесь не так, подскажите пожалуйста
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
16.05.2022, 10:52 |
Ответы с готовыми решениями: Ошибка run time error 6 overflow, что не так? (без cost.Text = c6 вроде сначала робил, а потом удалял и всё равно ошибка Private Sub CommandButton1_Click() h = InputBox("Введите… Ошибка с графикой в приложении Windows form (ошибка не в коде!) При попытке запуска user form”” через double click выплывает ошибка run error time 9 Run time error when trying to unload modal form Как скрыть тег Run Text или ToolTip? 4 |
536 / 348 / 193 Регистрация: 07.11.2018 Сообщений: 1,213 |
|
16.05.2022, 11:27 |
2 |
Да с этим постом всё неправильно.Рекламим курс хтмл а текст пишем без тэгов
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 |
|||
стыбзено и переведено специально для вас на другом форуме .источник не указываю ..т.к злой админ Добавлено через 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)?
Ответ 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).