форум vBSupport.ru > Камчатка > Бар «У воблочки» > Hi-Tech/Internet
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default Что предпочтительнее Windows-1251 или UTF-8?
10

Очень много иногда вижу вопросов, и не только на этом форуме, что все таки лучше Windows-1251 или UTF-8? Пришел к выводу, что надо бы для пользователей опубликовать одну статейку, которую читал уже давненько. Лично для меня, так все проекты давно на utf-8, но как говориться объясни разницу. для этого приведу в пример статейку:

Источник: http://exclusiveblog.ru/markup/windows1251-or-utf8

Quote:
На днях пришлось решать небольшую проблему с плохой восприимчивостью комплекта Denwer к кодировки UTF-8. Проблема, честно говоря, оказалась пустяковая, и была решена минут за 15, 10 из которых заняло использование Гугла. В этом время, исследуя различные форумы, я заметил, что для многие не могут разобраться с этой проблемой достаточно долго. Кроме того, понял, что многих интересует зачем вообще использовать UTF-8, если есть прекрасная такая “русская” кодировка Windows-1251. Вот и решил написать пару постов на эту тему. Начну я с общего описания данных кодировок, а продолжу, непосредственно, описанием решения проблемы использования UTF-8 на пакете Denwer.

Не так давно, в связи со сложившимися обстоятельствами, решил отказаться от кодировки Windows-1251, с которой работал очень давно, и целиком и полностью перейти на UTF-8. Все причины перехода раскрывать не буду, но основные из них:

большинство современных веб-платформ по-умолчанию работают именно на ней;
её очень удобно использовать для создания мультиязычных проектов;

набор используемых в кодировки символов около 100000;
кодировка универсальная, т.е. русские символы и в Никарагуа остаются русскими.
Далее постараюсь написать несколько слов об основных отличиях кодировок Windows-1251 и UTF-8, а так же, в качестве бонуса, примеры объявления кодировки в HTML, PHP и для работы с базами данных MySQL.

Немного теории
Windows-1251 – набор символов и кодировка, являющаяся стандартной 8-битной кодировкой для всех русских версий Microsoft Windows. Пользуется довольно большой популярностью. Windows-1251 выгодно отличается от других 8?битных кириллических кодировок (таких как CP866, KOI8-R и ISO 8859-5) наличием практически всех символов, использующихся в русской типографике для обычного текста; она также содержит все символы для близких к русскому языку языков: украинского, белорусского, сербского и болгарского.

UTF-8 – в настоящее время распространённая кодировка, реализующая представление Юникода, совместимое с 8-битным кодированием текста. Нашла широкое применение в операционных системах и веб-пространстве. Текст, состоящий только из символов Юникода с номерами меньше 128, при записи в UTF-8 превращается в обычный текст ASCII. Остальные символы Юникода изображаются последовательностями длиной от 2 до 6 байт.

Основные отличия кодировок
Главное отличие кодировок – это используемый набор символов. В UTF-8 гораздо больше количество символов возможно представить, чем в Windows- 1251. Кодировка Windows- 1251 однобайтовая, т.е. представить в ней можно только 255 символов. Для кириллицы, впрочем, этого вполне достаточно, именно поэтому однобайтовые кодировки до сих пор так массово применяются.

Символ в кодировке UTF-8 может кодироваться аж 6 байтами (пока используется только 4 и больше не планируется). Для русского языка, например, символ занимает 2 байта. Все символы, которые есть в таблице символов – поддерживаются этой кодировкой. К примеру, если вам нужен знак копирайта (©), то вам не нужно искать особый шрифт или же изображать символов в графическом формате.

Плюсы UTF-8:

UTF-8 позволяет работать одновременно с несколькими языками, т.е. выдавать тексты, в которых используются символы разных алфавитов и даже иероглифы. С использованием кодировки 1251 это невозможно;
использование UTF-8 позволяет отказаться от кодовых таблиц, трансляций символов и всех прочих извращений, что были ранее с однобайтовыми кодировками;
Нет кучи кодировок для одного и того же языка, как это было ранее для русского: cp1251, cp866, koi8r, iso8859-5.

Минусы UTF-8… А есть ли они у этой кодировки вообще? Я знаю только разных мифах и легендах на эту тему, вот некоторые из них:

“У UTF-8 есть проблемы со старыми браузерами” – маловероятно… Во всяком случае, если под старыми не подразумевают Lynx и Mosaic _);
“С UTF-8 возникают проблемы на сервере” – ну да, если сервер по-умолчанию пытается определить другую кодировку. Но это не минус кодировки, уж точно…
Я не призываю всех поголовно переходить на utf-8. я просто хотел рассказать, что намного удобнее использовать именно эту кодировку. Расписать можно на эту тему еще кучу постов. но очевидно что utf-8 это международный стандарт, используемый всем миром))

Дополнения на эту тему: Источник: http://makart.ucoz.ru/publ/1-1-0-6

UTF?8 — вовсе не «новомодная» или «молодая» кодировка, она успешно применяется более десяти лет. Если некий разработчик узнал о ней недавно или не знает до сих пор — это недостаток его квалификации, а не кодировки.

С UTF?8 возникают проблемы на веб?сервере?

«Я поместил на сервер страницу в UTF?8, а она отображается кракозябрами»,— так иногда жалуются начинающие разработчики. На самом деле, такая проблема случается с самыми разными кодировками и не связана ни с какими специфическими особенностями UTF?8. Здесь неприятность в том, что страница сделана в одной кодировке, а сервер в заголовках HTTP сообщает другую. Надо привести настройки сервера в соответствие с действительной кодировкой веб?страниц. Повторю, что это надо сделать при любой кодировке.

Файлы в UTF?8 занимают много места?

Говорят, что документы в UTF?8 становятся в два раза больше, чем в старых кодировках. Это миф из разряда «слышал звон, да не знаю, где он». На самом деле — раз на раз не приходится. Например, если документ состоит только из символов ASCII (латинские буквы, цифры, знаки препинания и т. д.) — то в кодировке UTF?8 он будет занимать ровно столько же байтов, сколько в любой другой. Если документ содержит только буквы русского алфавита и никаких других символов (что, согласитесь, бывает достаточно редко) — то в UTF?8 он действительно станет в два раза больше. А если в нём, например, поровну русских и арабских букв — в UTF?8 он будет в два раза меньше, чем, например, в Windows?1251 или Asmo?708.

Та самая страница, которую вы сейчас читаете, в кодировке UTF?8 занимает 35 килобайтов. А если перевести её, например, в Windows?1251, она будет занимать 26 килобайтов (убедитесь сами). Кстати, сравнивая страницы, посмотрите, насколько легче читается код в UTF?8.

Рассуждая о «весе» веб?страниц, следует отметить, что основную часть этого веса обычно составляет не код HTML, а изображения. (А также, возможно, другие объекты: ролики Flash, файлы JavaScript и т. д.) В результате даже в тех случаях, когда документ в UTF?8 увеличивается — это практически незаметно в общем объёме данных. По?моему, «разбухание» кода на несколько процентов — недорогая цена за главное преимущество UTF?8, с которого мы начали.

Тем, кто заботится о «весе», следовало бы в первую очередь выкинуть из кода устаревшие атрибуты HTML (вроде cellpadding или valign) и подстановки для тех символов, которым они не нужны (например, &mdash; для длинного тире или &nbsp; для неразрывного пробела). Действительно, иногда доходит до маразма — некто упирается: «Не буду делать страницы в UTF?8, потому что они от этого увеличиваются» — а сам при этом ваяет код с жуткими атрибутами и подстановками, который без них мог бы быть в пять раз короче.

Серверные языки программирования и базы данных плохо поддерживают UTF?8?

Кто?то скажет: «Всё это хорошо, пока мы имеем дело со статичными веб?страницами. Но если мы пользуемся PHP и MySQL, про UTF?8 лучше забыть». Это тоже неправда. В древности, действительно, некоторые языки программирования и системы управления базами данных не умели работать с UTF?8. Но сейчас все современные языки программирования и базы данных находятся в прекрасных отношениях с этой кодировкой. А несовременными языками и базами пользоваться не ст?ит: чем древнее ваши системы, тем проще их взломать.

Единственная трудность с серверными программами — в том, что многие из них по умолчанию настроены не на UTF?8, а на другие кодировки. Ну так перенастройте; мы же с вами не дети малые, чтобы везде и всюду использовать только настройки по умолчанию.

Поисковые системы плохо работают с UTF?8?

Ещё приходится слышать, будто поисковые системы «спотыкаются» об UTF?8. Эти сведения, опять же, устарели лет на восемь. Вот вам, например, поисковая система «Яндекс»:


Убедитесь, что она прекрасно находит всё, что угодно, на моём персональном сайте, где, между прочим, её работу «осложняет» не только UTF?8, но и переносы в словах.

Таким образом, не существует никаких противопоказаний к широкому применению UTF?8. Те, кто считает по?другому, просто отстали от жизни.

Когда UTF?8 не надо использовать

Конечно, бывают случаи, когда самую лучшую кодировку UTF?8 использовать всё?таки нежелательно. Хотя это вовсе не те ситуации, которыми пугают адепты вышеразвенчанных мифов.

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

Во?вторых, иногда работу сайта обеспечивает программное ядро (так называемый «движок»), которое не умеет работать с UTF?8. В такой ситуации, конечно, следует задуматься, нет ли возможности подправить «движок» или заменить его на другой. Но это не всегда удаётся. Некоторые программные ядра обеспечивают функциональные достоинства, ради которых можно смириться с устаревшей кодировкой.

Как работать с UTF?8

В качестве «недостатков» UTF?8 упоминают и тот факт, что с ней сложно работать — мол, не все текстовые редакторы её поддерживают. Ну так пользуйтесь хорошим редактором, у которого нет проблем с современными кодировками. Кодировку UTF?8 понимают все нынешние редакторы — от стандартного «Блокнота» в Windows до Dreamweaver’а. (Сам я, кстати, пользуюсь EmEditor’ом, и этот сайт сделан именно его средствами.)

Надеюсь, что дальнейшие рекомендации будут вам полезны при работе с UTF?8.

Отключайте BOM

При сохранении файла многие текстовые редакторы предлагают флажок «Include Unicode Signature (BOM)», «Add Byte Order Mark» или нечто подобное. Прежде всего убедитесь, что в вашем редакторе это есть. Если похожей настройки не обнаружено (как, например, в «Блокноте») — пользоваться таким редактором для серьёзных задач не ст?ит. Найдя этот флажок — отключите его.

Byte Order Mark (BOM) — это три служебных байта, которые автоматически записываются в начало документа и обозначают, что он сохранён в кодировке UTF. Подробности можно прочитать в справочнике, а практическая сторона заключается в том, что эти служебные байты в UTF?8 не являются необходимыми, зато, наоборот, могут ввести в заблуждение некоторые старые браузеры и другие программы.

Настройте простые сочетания клавиш для специальных символов

Если за каждой кавычкой, тире или неразрывным пробелом лезть в «Таблицу символов» — можно до старости провозиться с одним?единственным документом. Для наиболее распространённых специальных символов рекомендуется настроить сочетания клавиш, что обеспечит любой хороший редактор. Например, я наладил EmEditor так, что по нажатию Ctrl? -? ?? в документе появляется длинное тире, а по нажатию Ctrl? пробел? ?? — неразрывный пробел. Таких сочетаний клавиш у меня около 20, и они позволяют вводить наиболее полезные специальные символы так же просто, как обычные буквы и знаки препинания.

Конечно, когда мне требуется редко используемый символ — буква «юс», рожица или иероглиф,— я обращаюсь к «Таблице символов».

Указывайте кодировку везде, где требуется

Убедитесь, что веб?сервер сообщает правильную кодировку страниц. Если это не так — обратитесь к администратору сервера или прочтите справочные материалы о том, как настроить кодировку.

Встречаются службы размещения сайтов (хостинги), которые «намертво привязаны» к какой?либо одной кодировке и не позволяют хозяевам сайтов пользоваться другими кодировками. С такими хостингами связываться не ст?ит. В какой кодировке делать страницы — должен решать разработчик сайта, а не служба его размещения.

В коде HTML часто имеет смысл использовать элемент meta:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

Существуют разные мнения про использование meta для указания кодировки. Когда?то я считал, что этот элемент скорее вреден, чем полезен. Однако ряд исследований и собственный опыт заставили меня пересмотреть свою точку зрения. Применять или не применять meta — следует решать отдельно для каждого конкретного сайта.

Не забывайте о шрифтах

Какой бы кодировкой вы ни пользовались, надо помнить, что браузеры отображают только те символы, которые есть в установленных на компьютере шрифтах. «Таблица символов» показывает именно их. Перечень стандартных шрифтов Windows размещён в разделе «Справочники».

В Unicode можно найти немало других символов — например, руны (, и пр.), буквы глаголицы (, и пр.), разнообразные значки и пиктограммы (, , и пр.). Но вставить их в документ не получится: у подавляющего большинства пользователей нет шрифтов, в которых присутствовали бы эти знаки. Тут даже UTF?8, при всех её достоинствах, помочь не в силах. Приходится размещать такие символы в виде растровых изображений (как сделано здесь) или искать другие обходные пути.

Многие другие «экзотические» символы обычно доступны на компьютерах пользователей, но браузеру приходится помогать найти нужный шрифт. Например, чтобы отобразить старославянские буквы (?, ? и пр.) или математические знаки (?, ? и пр.) — я указываю в CSS шрифт «Lucida Sans Unicode».

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

Главное преимущество UTF?8 — не в волшебном расширении набора символов, а в простом способе их включения в документ.

Смотрите в будущее


Если вы знакомы с Unicode, то, возможно, поинтересуетесь, почему я советую именно UTF?8, а не другие современные кодировки — скажем, UTF?16 или UTF?32. Отвечаю: они обеспечивают то же главное преимущество, что и UTF?8, но обладают и рядом недостатков. Во?первых, они, в отличие от UTF?8, действительно заметно увеличивают «вес» файлов. Во?вторых, с ними в некоторых используемых ныне браузерах ещё возникают проблемы.

Кстати, Консорциум W3C рекомендует использовать для веб-страниц именно UTF?8.

Last edited by artscripts : 06-30-2011 at 05:45 PM.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Centurion
Эксперт
vBSSecurity
 
Centurion's Avatar
Default
0

а плюсы и минусы Windows-1251?)
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default
0

Centurio, для меня плюсов не))) одни минусы)
 
 
AleX
Гость
Default

Если форум не мультиязычный, то предпочтительнее использовать Windows-1251. Да и, с ним геморроя меньше.
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default
1

AleX, ну тут я спорить не буду, но каждому свою, но к примеру начинаешь парсить инфу на свой форум с других ресурсов и опа кракозяблы пошли, ужас, приходиться дописывать в парсеры свои кодировки типа iconv("UTF-8","CP1251", $file);, а если парсешь ява скрипт? ИМхо. намного проще поставить utf-8 и вообще не парится не над мультиязычностью, не над интеграцией сторонних серверов и парсингом.
 
 
AleX
Гость
Default

Quote:
Originally Posted by artscripts View Post
но к примеру начинаешь парсить инфу на свой форум с других ресурсов и опа кракозяблы пошли, ужас
Парсинг и работа форума — разные вещи. Большинство администраторов таким не занимаются.
Quote:
Originally Posted by artscripts View Post
А есть ли они у этой кодировки вообще?
Есть. cp1251 — 1 байт на символ, в utf8 — 2 байта на символ. В итоге, БД будет занимать значительно больше места, чем cp1251.
 
 
J. Corvin
Глумливый Специалист
 
J. Corvin's Avatar
Default
0

Quote:
Originally Posted by artscripts View Post
начинаешь парсить инфу на свой форум с других ресурсов и опа кракозяблы пошли, ужас, приходиться дописывать в парсеры свои кодировки типа iconv("UTF-8","CP1251", $file);, а если парсешь ява скрипт? ИМхо. намного проще поставить utf-8 и вообще не парится не над мультиязычностью, не над интеграцией сторонних серверов и парсингом.
Согласен, тоже давно отказался от cp1251 из-за подобных заморочек.
Но это скорее от того что никогда не парился над размерами и прожорливостью БД.
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default
0

Quote:
Originally Posted by AleX View Post
Есть. cp1251 — 1 байт на символ, в utf8 — 2 байта на символ. В итоге, БД будет занимать значительно больше места, чем cp1251.
Немного не так в этой кодировке латиница по 1 байту, кириллица по 2 байта, редко используемые иероглифы еще больше, там каждый символ по разному весит. И не забывайте что Юникод 8 битный. что равняется 1 байту.)

На эту тему можно спорить бесконечно, но мое мнение windows-1251 устаревшая кодировка, и лучше начинать сразу с utf-8 делать проект, прежде чем через пару лет проекта ты начнешь понимать, что тебе надо на сайт мулльтиязычность и внедрить иностранные серверы, или любые работающие с бникодом. вот тут и начнуться проблемы )
 
 
AleX
Гость
Default

artscripts, уже есть проекты с utf8. Больше проблем, чем пользы — вылазят косяки, при "кристальной" БД.
 
 
artscripts
Эксперт
 
artscripts's Avatar
Default
0

AleX, тьфу тьфу тьфу, я пока на своих проектах косяков вообще не обнаруживаю) Но я еще раз повторюсь, все на любителя. И да спасибо, всегда интересно что-либо пообсуждать спокойно с адекватными людьми))
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 02:29 AM.


Powered by vBulletin® Version 3.8.0
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.