UTF8 vs CP1251



Предлагаю зажечь небольшой холиварчик. Представьте себе, что нужно разработать новый веб-проект. Будете ли вы его делать на CP1251 или на юникоде? Прошу в комментариях высказывать мнение. Крайне желательна обстоятельная аргументация.

Что касается моего мнения – я однозначно за UTF8. На моей практике был случай, когда клиент попросил разместить китайский текст на своём сайте, не поленился ведь поискать переводчика на китайский. А у него стояла старая CMS, работающая только на win1251. Мне пришлось только пожать плечами. Увы.

У кого-нибудь есть история в защиту 1251?
Или совет как на 1251 написать китайский текст?

Нет постов по теме.

Категории Не по теме |
автор: altesack / Среда, Март 10, 2010 / 19 комментов »

19 комментов

    Однозначно, UTF8 лучше. Зачем усложнять себе жизнь, работая с узконаправленной кодировкой (Win 1251 является кодировкой для всех русских версий Microsoft Windows)? Используя во всем сайте UTF8 нигде не нужно будет делать перекодировку. А с cp1251 можно будет ожидать неприятностей.
    И даже, если кто-то найдет “плюсы”, в ответ можно будет привести сотню минусов которые подкреплены ПРАКТИКОЙ!
    Не понимаю, к чему делать пост? Капитан Очевидность в негодовании…

    Ну и где здесь холиварчик? Делать новый веб-проект в 1251 могут только чайники, которые не знают, что такое кодировки, но наслушались мифов десятилетней давности.

    @ Дмитрий,@ Wave:
    Прошу не бросать в меня ссаными тряпками. Я тоже так думал, пока не наткнулся на это http://ak-cms.ru/todo.html

    …AK работает в 1251. Необходимость переноса системы на другую кодировку вызывает сомнения.

    Казалось бы новый проект.
    Теперь моя вера в UTF8 в колебании.

    Может я чего-то не понимаю? Надеюсь услышать хоть парочку аргументов в защиту 1251.

    UPD: И да. У меня нет ощущения, что это чайники

    UTF-8. Однозначно!
    А всякие вконтактики рассчитаны на пользователей Windows и т.д., потому и работают с этой говнокодировкой.

    Я вообще чайник и все такое, но Wordpress-блоги все на UTF-8, а их сейчас немалое множество. Что как бы само собой говорит в пользу этой кодировки.

    Собственно, сам послушал более опытных друзей, посмотрел на количество блогов вордпресса, увидел, что некоторые новые крупные проекты тоже используют UTF-8, сам прикинул и тоже присоединился к тем, кто за УТФ. Новые проекты делаю теперь на ней.

    UTF-8. Недавно даж с коллегой по этому поводу спорили.

    При выборе кодировки есть несколько факторов влияющих на ее выбор:
    1. Язык сайта
    2. Разработчик движка
    3. Хостинг
    Учитывая их все и приходят к тому или иному выбору.

    UTF8, чтобы различные XMLHttpRequest-ы не ругались :)

    Несомненно utf8. Сколько в свое время было проблем из-за 1251, так что теперь мой выбор однозначен. Не работайте на китайцев, рунету нужны классные прогеры, не уходите от нас:)

    qosys пишет:

    UTF8, чтобы различные XMLHttpRequest-ы не ругались

    хорошо подметил. пожалуй единственная объективная причина по которой я перешел на utf-8 как раз в этом, и наступило “это когда ajax стал плотно юзать.
    а так никаких проблем нет, не надо раздувать того чего нету. все работает.

    UTF-8 конечно же.
    Детально и обоснованно об этом я постил на хабр, см. вот эту статью: Лучшая кодировка. UTF-8 vs cp1251

    p.s.: На самом деле у меня самого большое кол-во проектов на cp1251, банально нету ни времени ни желания переводить их на utf-8

    @ Nayjest, web-superman:
    Ну да, речь шла о новых проектах. Тонны старых пусть работают, пока работают.

    Спасибо за ссылку.

    Холивар, похоже, не удался. Все современные разработчики предпочитают UTF8. Единственная проблема – всякие устарелые партнерки и прочие системы, которые сложней корректно вставить на страницу с UTF8. Но это – не повод и самому быть устарелым.

    1251 лучше полюбой. UTF8 гадость

    @ win1251fan:
    Это-то как раз понятно. А кроме того что оно “гадость” аргументы есть?

    Все-таки, чтобы все не было так ееединогласно, кину одну гадость. Никто не считал, во сколько раз медленнее обрабатывается utf-8, по сравнению с однобайтовой кодировкой? Многие думают, что раза в 2 (так примерно распухает кириллический текст). Все гораздо хуже – в десятки и сотни раз медленнее. Например, обработка регулярного выражения, в котором есть класс символов типа \w (буква). В однобайтовой кодировке это один-два такта + допускает параллельное вычисление, в utf-8 несколько десятков оперций сравнения.
    Таблица преобразования в 1251 – это 256 байт, которые помещаются в кэш современного процессора, как горошина в стакане, а таблица преобразования для utf-8 вообще не существует в виде одной таблицы, это куча таблиц и соотв. условных переходов.
    Есть еще масса моментов, связанных с ошибками сортировки, с невозможностью реализации многих алгоритмов поиска и т.д.
    Все в восторге от одной общей кодировки, но не видят накладных расходов…((

    Однозначно нельзя так написать “только utf или только win”.
    Необходимо смотреть конкретный проект.
    Бложики само собой лучше делать в utf. Мультиязычные проекты.

    Совместимые с разными хостингами и настройками проекты лучше конечно держать в win-кодировке. Банальное использование strlen() на utf-строке выдаст некорректный результат при наличии неанглийских символов в строке.

    Ключи в БД (mysql). Попробуйте сделать пару связанных табличек в utf-bin по миллиону записей, с ключом по char-полю и бомбить ее поиском LIKE и выборкой с LEFT JOIN, скажем, по 2-3 раза в секунду. utf-кодировка для mysql – зло в высоконагруженных проектах и прирост времени выполнения до 2 раз.

    То, что много людей делают блоги на вордпрессе в утф говорит только о популярности этой кодировки и этой платформы. Но не в пользу – это просто факт и дань моде, что люди начинают использовать utf-8.

    По поводу, как написать на cp1251 китайский текст, можно например так: またはログイン名

    Отличный пример мультиязычности и cp1251 даст вам ВКонтакте, т.к. ВКонтакте ЦЕЛИКОМ в кодировке cp1251.

Ответить