UTF8 vs CP1251

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

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

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

UTF8 vs CP1251: 19 комментариев

  1. Дмитрий

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

  2. Wave

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

  3. altesack Автор записи

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

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

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

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

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

  4. Накукрыскин

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

  5. Ptah

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

  6. zeleboba

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

  7. Lena

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

  8. Andrey

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

  9. qosys

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

  10. Андрей

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

  11. ветерок

    qosys пишет:

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

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

  12. Nayjest, web-superman

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

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

  13. altesack Автор записи

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

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

  14. Сандер

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

  15. altesack Автор записи

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

  16. rav

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

  17. Игорь

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

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

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

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

  18. Гриша

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

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

Комментарии запрещены.