2009-03-21 2 views
0

Каково ваше мнение о кодировании акцентированных и специальных символов в XHTML и XML.UTF8, ISO-8859-x или 7-бит ASCII и сущности

  • Вы преобразовываете каждый символ не-US-ASCII в именованный объект?
  • Вы используете ISO-8859-x или Win-125x и кодируете объекты для чего-либо еще?
  • Или вы прямо пишете все в UTF-8, не беспокоясь об объектах?

Просьба уточнить, какие и почему.

+0

Мне нравится, как этот звук звучит как вопрос экзамена ... НЕ – hop

ответ

7

Я не могу точно сказать, почему это происходит, но в моем 5-летнем опыте использования UTF-8 для каждой веб-страницы (я в основном использую кириллические и балтийские символы), я еще не видел, чтобы какой-либо символ отображался неправильно ,

3

Не беспокойтесь о названных объектах. Они хороши, когда вам нужно вручную редактировать HTML-файлы и вы хотите читать символы и не иметь редактор UTF-8. Но в противном случае UTF-8 - это путь.

0

Говоря с американской точки зрения: там, где почти весь текст является US-ASCII, с несколькими символами и акцентированными символами, я настоятельно рекомендую использовать числовые или именованные объекты.

Причина проста: это одна вещь, о которой нужно беспокоиться. Вам не нужно гарантировать, что ваш веб-сервер настроен на рекламу той же кодировки, что и ваш контент. Потому что рано или поздно вы получите кого-то, редактируя страницы в Windows, используя кодировку Cp1252, и кто-то другой, работающий в Linux с ISO-8859, и хотя они близки, они не совпадают. И если веб-сервер настроен как UTF-8, они оба сломаны.

Это сказало, что я дал Сергею +1, потому что вы не хотите иметь массу сущностей, если работаете с текстом, который не является главным образом ASCII.

+0

+1 есть что-то к этому. У меня Linux со всем UTF-8 по умолчанию, но веб-дизайнеры кодируют все ISO-8859-1. Но тогда опция «автоопределить кодировку» в редакторах удобна :-) – vartec

+0

Единственный способ, которым это удается, - это создать статические веб-страницы, и у вас есть прямой контакт со всеми участниками.Даже тогда вам все равно придется иметь дело с людьми, которые не конвертируются в сущности, что является такой же большой головной болью, чтобы объяснить, как сохранить файлы в UTF8. Для обычных веб-приложений это отношение опасно, потому что вы можете получить ссылку в цепочке, которая не является кодировкой, тем самым постоянно оставляя все данные пользователя непоправимо поврежденными. Независимо от того, хотите ли вы использовать сущности, вам нужно получить свои кодировки прямо, или вы находитесь в мире боли. – gtd

+0

Часть разработки команды разработчиков - это общение. Однако, как правило, проще общаться в команде, чем без, и во многих компаниях развертывание управляется отдельно от разработки. Что касается управления кодировками через стек web-app: если ваша платформа не делает этого для вас, вы находитесь в мире страшного периода. Но эй, спасибо за поздний downvote. – kdgregory

2

Я всегда пишу в utf8 напрямую. Единственной проблемой, которая была у меня в этот период, был сервер, который форсировал изо кодирование в заголовках.

6

UTF-8.

Он был разработан именно с целью решения проблем, связанных с kdgregory, которые встречаются с UTF-16, и делает это фантастически. Практически каждый редактор сегодня (включая Notepad) поддерживает UTF-8, а также является кодировкой по умолчанию для XML.

1

Всегда используйте UTF-8 для вас сайт

  1. Там нет возражений/проблемы в поддержку UTF-8 с помощью современных рамок и серверы баз данных.

  2. Вы избежите проблем, когда кто-то помещает текст на другом языке, чем ожидалось, и вы получаете ?????? вместо некоторых символов Unicode или даже хуже, когда шаблон страницы даже не отображается.

  3. Даже ваш сайт привязан к одному языку без многоязычного интерфейса (в дальнейшем также), кто-то может опубликовать на вашем сайте материал и получать комментарии от своих друзей на своем родном языке.

С уважением, Павел

0

Я лично всегда использовать UTF-8. Он хорошо поддерживается, и каждый язык, ОС и браузер каким-то образом его поддерживают. Объекты приятно отображать, но они - боль в шее для редактирования. Именованные объекты могут ссылаться на множество символов, но будут охватывать только западные наборы символов. Для азиатских языков вам придется вернуться к шестнадцатеричным объектам, и это не так. Шестнадцатеричные сущности также должны быть декодированы или закодированы с использованием таблиц Unicode в любом случае, поэтому вы можете использовать юникодный вкус для кодирования текста в первую очередь.

Если ваша основная аудитория - английский, вы можете подумать, что можете справиться с ISO-8859-1 или cp1252, но это было бы ошибкой. Рано или поздно кто-то собирается писать акцентированные или другие иностранные символы, и когда это произойдет, слишком поздно исправить вашу кодировку: какой-то текст уже запутан.

Вот куча дальнейшего чтения, которые спасли меня много головной боли, когда играя с кодировками:

Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) ли подробное введение наборов символов и их использования и разностью joelonsoftware.com. Информация там довольно общая, но полезно помочь выяснить, какую кодировку выбрать.

Character sets from Browser to Database - очень практичная и прагматичная статья из SUN, в которой много говорится о различных местах, где вы должны убедиться, что ваша кодировка не преобразована ни в что другое.

What Is UTF-8 And Why Is It Important? - это еще одна статья от SUN, которая углубляется в nitty gritty UTF-8 и должна быть разрешена для ответа на любой интересующий вас вопрос по деталям UTF-8 после прочтения первых 2 статей.

0

Если я работаю над веб-сайтом в основном в пространстве ASCII (на английском языке, большинство романских языков), я конвертирую все не-ASCII в именованные или пронумерованные объекты. Это позволяет мне или другим людям без соответствующих шрифтов работать над этим. Это может показаться маловероятным, но в один прекрасный день вы в конечном итоге используете какой-нибудь богооткрытый терминал через SSH, который не делает UTF-8, и даже если в хост-системе не будут установлены правильные шрифты.

Если я пишу текст, который в основном не используется в ASCII, я буду использовать UTF-8. Если текст - это все сущности, которые так же нечитаемы, как и коробки замены Unicode.

0

Первые 128 символов Unicode совместимы с ASCII. Текст, написанный с этими 128 символами, является действительным документом ASCII и UTF-8. Unicode является стандартом и должен использоваться всеми. Дикторы на английском языке не будут видеть разницы, но не-английский язык будет. Лично я очень разочарован программным обеспечением и его создателями, если он не может правильно хранить и отображать даже мою фамилию.

Я также должен заметить, что кодировка символов - это только первая из целого ряда проблем, связанных с интернализацией. Его можно особо заметить в небольших частях программного обеспечения, которые не предназначены для обработки различных проблем, не связанных с английской грамматикой.

+0

Конечно, 7-разрядный ASCII является базой UTF-8. Но это не помогает даже на английском только тексте. У вас будет ©, ¢, ½ ... – vartec

Смежные вопросы