charset-utf8 и символьные объекты - PullRequest
2 голосов
/ 13 октября 2010

Я предлагаю преобразовать свои веб-страницы XHTML для windows-1252 в UTF-8.

У меня есть следующие символьные объекты в моей кодировке:

  • ' - апостроф,
  • ► - правый указатель,
  • ◄ - левый указатель.

Если я изменю кодировку и сохраню страницы как UTF-8, используямой редактор:

  • апостроф остается в качестве сущности персонажа;
  • указатели преобразуются в символы в коде (предположительно, потому что объекты не поддерживаются в UTF-8?).

Вопросы:

  1. Если я правильно понимаю UTF-8, вам не нужно использовать сущности и можно вводить символы непосредственно в код.В каком случае мне безопасно заменить #39 набранным апострофом?

  2. Правильно ли, что редактор поместил символы указателя непосредственно в мой код и будут ли онинадежно отображается в современных браузерах, вроде бы нормально?Предположительно, я не могу вернуться к сущностям в любом случае, если я использую UTF-8?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 13 октября 2010

Это кодировка, а не набор символов.

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

2) если ваш редактор современный редактор, он будет использовать последовательности utf вместо просто char для отображения текста.большинство последовательностей, используемых в коде, представляют собой просто ASCII (а ASCII - это подмножество utf8), поэтому эти символы занимают один байт.другие символы могут занимать два, три или даже четыре байта специальным образом.они все равно будут отображаться вам как один символ, но отношение между символом и байтом стало другим.

В любом случае;поскольку все действительные символы ASCII абсолютно одинаковы в ASCII, utf8 и даже в windows-1252.Вы не должны видеть никаких проблем с использованием utf8.И вы все еще можете использовать числовые и именованные сущности, потому что они написаны в этих допустимых символах.Вам просто не нужно.

PS Все современные браузеры могут отлично работать с utf8.но наши определения « modern » могут отличаться.

1 голос
/ 13 октября 2010

Объекты имеют три цели: кодирование символов, которые невозможно кодировать в используемой кодировке символов (не относится к UTF-8), кодирование символов, которые неудобно набирать на данной клавиатуре, и кодирование символов, которые являются недопустимыми неэкранированный.

► должен всегда производить ► независимо от того, какая кодировка. Если это не так, это ошибка в другом месте.

прямо в источнике нормально в UTF-8. Вы можете сделать это или объект, и это не имеет значения.

'хорошо в большинстве случаев, но не в некоторых. Следующие оба допускаются:

<span title="Jon's example">This is Jon's example</span>

Но должно быть закодировано в:

<span title='Jon&#x27;s example'>This is Jon's example</span>

потому что в противном случае он будет принят как ', заканчивающий значение атрибута.

0 голосов
/ 05 января 2013

Используйте объекты, если вы копируете / вставляете контент из текстового процессора или если код представляет собой диалект XML. Используйте макрос в вашем текстовом редакторе, чтобы найти / заменить обычные в одном кадре. Вот простой список:

  • Половина: ½ => &#189;
  • Острый акцент: é => &#233;
  • Амперсанд: & => &#38;
  • Апостроф: ’=> &#39;
  • Backtick: ‘=> &#96;
  • Обратная косая черта: \ => &#92;
  • Пуля: • => &#8226;
  • Знак доллара: $ => &#36;
  • Знак центов: ¢ => &#162;
  • Многоточие:… => &#8230;
  • Эмдаш: - => &#8212;
  • Endash: - => &#8211;
  • Цитата слева: «=> &#8220;
  • Правильная цитата: ”=> &#8221;

Ссылки

...