Перейти к содержимому

Фотография
- - - - -

А какую кодировку используете Вы? UTF-8 VS win-1251


  • Вы не можете создать новую тему
  • Закрытая тема Тема закрыта
Сообщений в теме: 5

#1 Creator

Creator

    Справедливый админ

    Топикстартер
  • Администратор
  • 248
    1 744 сообщ.

Отправлено 22 Май 2009 в 17:48

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

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

Собственно, что я вижу, в случае перехода на UTF-8 для моих проектов.

Минусы:

1) Увеличение размера (файлов, базы) ведь мы знаем, что на 1 символ используется от 1-4 байтов.
2) Из п.1 следует некоторое понижение производительности.
3) Необходимость замены всех строковых ф-ий.
4) Возможные проблемы с регулярными выражениями. Ждем PHP6.
5) При отправке писем, все равно придется менять кодировку на win-1251.

Плюсы:

1) Использование универсальной кодировки
2) ...

Все выше сказанное – ИМХО. Цель моего поста – разобраться с темой, поэтому очень хотел бы узнать ваше мнение о сложившейся ситуации и ваши взгляды на плюсы и минусы.

UPD: Добавлено голосование.
  • 1

Спонсор

#2 SLA

SLA

    Прохожий

  • Новичок
  • 3
    1 сообщ.

Отправлено 25 Май 2009 в 18:57

Я обеими руками за UTF-8. Попробую и вас переубедить :)

Мне кажется, 8-битные кодировки текста - это что-то ущербное и неправильное, и должно отмереть, аналогично друхзначному способу записи года в датах (Y2K-проблема). Вся предыдущая история развития компьютерных кодировок текста нужна была только для того (и неизбежно привела к тому), что в итоге появилась одна универсальная кодировка. Единый стандарт, 100% универсальный, подходящий для общения между любыми системами и устройствами. Без боязни "потерять" часть данных при перекодировании текстов.

1) Увеличение размера (файлов, базы) ведь мы знаем, что на 1 символ используется от 1-4 байтов.

Разве жалко места на сервере? :) За многие годы ведения блога накопится ВСЕГО несколько мегабайт текста. В наше время, гораздо больше места занимает мультимедиа - видео, картинки, аудио. Когда я задумываюсь над тем, какого размера архив на YouTube.com, меня пот прошибает. Что уж там этот юникодный текст? Капля в море. :)

2) Из п.1 следует некоторое понижение производительности.

Дольше обрабатываются SQL-запросы? Насколько дольше? :) Есть много примеров, жутко нагруженных популярных сайтов, работающих в UTF-8, и они прекрасно справляются. Ну а для ведения небольшого блог-сайта -- вообще никаких проблем.

3) Необходимость замены всех строковых ф-ий.

Это отговорка :) Все НОВЫЕ сайты нужно изначально создавать в UTF-8. А старые... их тоже несложно переделать, достаточно лишь один раз основательно разобраться, какие именно функции, и как, нужно подправить. Разобравшись, задача становится достаточно простой. Об этом, кстати, немало написано хороших инструкций в интернете.

4) Возможные проблемы с регулярными выражениями. Ждем PHP6.

Согласен, ждем PHP6. "Все дороги ведут в Рим!" :) PHP, когда-нибудь, придет к 100% поддержке UTF-8, как кодировки "по-умолчанию" для ВСЕХ функций языка. (Примером такого "юникодного" языка является C#. Программировать на нем - одно удовольствие! Потому, что все ультра-современные технологии "общаются" только на UTF-8 и UTF-32).

5) При отправке писем, все равно придется менять кодировку на win-1251.

А зачем? :) Все современные почтовые программы и вебсервисы тоже прекрасно поддерживают UTF-8. Разве нет?

Кстати, о почтовых вебсервисах. Представьте, что вам нужно создать такой сервис. В какой кодировке предпочтительно было бы отображать все страницы сайта? Ага! То-то же! :)) Любые кодировки писем можно БЕЗ ПОТЕРИ ДАННЫХ (и головной боли!) сконвертировать в UTF-8. А в любую другую 8-битную - нельзя.

И напоследок, подумайте, как будет выглядеть ваш сайт, если я здесь напишу комментарий, скажем, на китайском? :) Ну это же будет очевидный "дефект", выглядящий так, как будто у вас заглючила база данных. А что, если я ХОЧУ написать какое-то иностранное слово или цитату? Или делаю copy-paste огромной статьи на русском, в котором есть ВАЖНЫЕ цитаты на иностранном? Ужас, придется перечитывать весь текст, чтоб убедиться, что он правильно отображается. НЕОБХОДИМОСТЬ ЭТОГО ЛИШНЕГО ДЕЙСТВИЯ - ЯВНЫЙ ПРИЗНАК УЩЕРБНОСТИ САЙТА! На сайте, работающем в windows-1251, использование таких не русских и не ланинских текстов просто технически невозможно. А жаль, это означает, что сайт неполноценен, недоразвит, незакончен. Не выдав никакого предупреждения об ошибке, он просто "сожрет" все иностранные цитаты. Ну чем не баг?.. Слава Богу, такие сайты уходят в прошлое, и если сайт крутится, например, на WordPress, в него можно "постить" все и вся. Это называется свобода.

Сообщение отредактировал SLA: 25 Май 2009 в 19:11

  • 3

#3 Creator

Creator

    Справедливый админ

    Топикстартер
  • Администратор
  • 248
    1 744 сообщ.

Отправлено 26 Май 2009 в 10:07

Очень доходчиво, спасибо.
Думаю, что ради эксперимента, переведу сайт на UTF-8 на локалке...потестирую.

Дольше обрабатываются SQL-запросы? Насколько дольше? :) Есть много примеров, жутко нагруженных популярных сайтов, работающих в UTF-8, и они прекрасно справляются. Ну а для ведения небольшого блог-сайта -- вообще никаких проблем.

Что скажете по поводу увеличения длины полей, например не CHAR(255), а уже VARCHAR(765)? И вообще изменений проводимых с БД?

И как дела обстоят с возможными SQl-инъекциями, я знаю, что один и тот же символ можно отобразить несколькими вариантами (в ввиду интернациональности)?
  • 0

#4 Medwoodu

Medwoodu

    Злобный модер

  • суперМодератор
  • 357
    1 418 сообщ.

Отправлено 29 Май 2009 в 10:24

в плюсы - нормальная работа сервисов xml - ajax
почта в utf-8 прекрасно работает

Насчет баз: если база начинает тормозить - то надо либо оптимизировать кешированием, либо увеличивать мощности либо переходить на постгр :) а увеличение объемов не должно сильно сказываться на производительности
  • 0

#5 Creator

Creator

    Справедливый админ

    Топикстартер
  • Администратор
  • 248
    1 744 сообщ.

Отправлено 29 Май 2009 в 10:38

в плюсы - нормальная работа сервисов xml - ajax
почта в utf-8 прекрасно работает

Полностью согласен:)

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

Другое дело, это работа со "стрингами"...тут возникли некоторые сложности, хотя на данном этапе большая часть уже решена)
  • 0

#6 Rico

Rico

    Активный

  • суперМодератор
  • 21
    316 сообщ.

Отправлено 29 Май 2009 в 14:32

Оптимальным путём я пришёл к решению, что новые сервисы пишу на utf8, старые поддерживаю но не развиваю.

В общем, utf8 - это зло. Но всё сейчас пишется под него.
Западные выкормыши Русь не любят и презирают. Как собственно всё, кроме пиндостана.
А наш человек подсел исключительно на потребление. Мы - безволный придаток.
Зарабатывем тиражируя програмные ноу-хау запада.

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

Эх.. навязыват нам utf.

В общем, сложно сказать "koi8 рулит" (моя любимая кодировка), т.к. все вкусняки сейчас на utf.
  • 0



Похожие темы Свернуть

Статистика

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей