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

Фото
- - - - -

Выбор кодировки для сайта


  • Вы не можете создать новую тему
  • Please log in to reply
8 ответов в этой теме

#1 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 10 Июль 2005 - 15:10

Решил для своего мультиязычного проекта использовать кодировку UTF8.

Плюсы:
* все данные в одной кодировке (на этом плюсы заканчиваются)

Минусы:
* достаточно сложно реализовать проверку вводимых символов, т.к. часто для написания одной буквы используются многобайтовые последовательности.
* нельзя слать сообщения на email в utf8 (чтобы не получить проблем с последующем их прочтением)
* надо определиться, в какой кодировке следует писать код (в плане русских и нерусских букв). В силу того, что я достаточно не владею английским языком все отладочные сообщения пишу по-русски.
* могут возникнуть проблемы с базой данных (но эти проблемы я уже решил)

Если взять кодировку Win-1251

Плюсы:
* стандартная кодировка у русских
* лёгкая проверка как русских, так и эстонских букв

Минусы:
* эстонские äöü придётся хранить в их кодах

Пока ещё не решил как быть с мультиязычными данными в базе данных. Как осуществлять по ним поиск. Если c UTF8 проблем нет, то с Win-1251 и эстонскими äöü могут возникнуть проблемы. Пока ещё не тестировал.

Все современные браузеры поддерживают обе кодировки и не сложно их заставить правильно показывать выбранную кодировку.

Какие есть мненеия?
  • 0

#2 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 10 Июль 2005 - 18:38

Написал функцию по материалам спецификации, теперь любую букву можно распознать.

Хотелось бы заметить, что русские буквы в UTF8 занимают в 2 раза больше места, чем они же в Win1251, что вызвано тем, что им предшествует байт, который говорит, что это многобайтная последовательность.

Теперь, если взять к примеру количество русских символов, хранимых в базе данных и букв äöõ становится ясно, что использовать UTF8 в данном случае довольнотаки расточительно. Это ещё один минус данной кодировки.
  • 0

#3 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 11 Июль 2005 - 11:37

Setor, извините конечно, что лезу, но думаю минусы несколько приувеличины. :)
-

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


+ работай с символами, а не с байтами.
-

нельзя слать сообщения на email в utf8 (чтобы не получить проблем с последующем их прочтением)


+ в заголовке мыла указываешь, что сообщение находится в UTF-8 и всё работает на 5+.
-

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


+ Не совсем понял проблему. Если у тебя в редакторе все файлы UTF-8. То все равно на катором языке ты пишешь (конечно если придерживаешься семантики языка программирования). И если у тебя выходной поток (в нашем примере как я понял это SGML) как UTF-8 и правильно раставлены заголовки, то и на экране ты сможешь прочитать весь ассортимент символов и правильной интерпретации.
-

могут возникнуть проблемы с базой данных (но эти проблемы я уже решил)


Устанавливаешь, что в базе кодировка UTF-8 и в 99% это реашет проблему.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#4 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 11 Июль 2005 - 12:04

Я рад, что хоть кто-то ответил :)

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

Насчёт почты - нужно сделать статистику по мейлерам и почтовым службам, чтобы убедиться, что многие из них поддерживают UTF8. Например, много лет используемый мною, горячо любимый, TheBat! Только недавно подружился с данной кодировкой.

По поводу редактора - в том-то и дело, что если проект будет в UTF8, придётся и файлы "переделывать" в UTF8. В этом нет проблемы. Иногда встречается проблема, когда редактор (например, Windows Notepad) добавляет в начало файла невидимый символ BOM, из-за которого прут ошибки. Но это тоже не проблема, т.к. Notepad'а я не использую :)

В принципе, с кодировками уже все проблемы решены. Мне интересно мнение по поводу того, что все русские буквы в данной кодировке занимают по 2 байта. Например, в базе будет накапливаться по 100Мегабайт текста в год. А если сравнить 50 и 100 Мбайт, то разница думаю, будет приличная ;)
  • 0

#5 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 11 Июль 2005 - 12:27

Setor, BOM - это подписка UTF-8. Вообще лучше избегать каких либо извращений с BOM. Так как в 95% код не будет читаемым для интерпритатора PHP (компилятора Java, Delphi . ). Надо сразу отключать эту фичу в редакторе.

Добавлено в [mergetime]1121077678[/mergetime]
Setor, ну здесь всё просто ... логично что русские занимают 2 байта ... а если ты хочешь хранить по 50 Мб ... то думаю проще установить сжатие ZIP. На скорость сильно не влияет. Или как вариант, сжимать тестовой контент до запихивания в базу.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#6 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 11 Июль 2005 - 12:41

Конечно, 50 мегабайт текста хранить я пока что не собираюсь. Это для нагладности я привёл. Но эта цифра вполне реальна при реализации всех моих идей. Архивировать есть смысл только большие участки текста. Но можно забыть про возможность поиска по ним. В принципе, я думаю, поиск по таким данным мне не понадобиться и можно смело всё оставить в кодировке Win-1251, а эстонские äöü хранить в их кодах. Использования другого языка общения пользователей (кроме русскго и эстонского) не предвидится.
  • 0

#7 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 11 Июль 2005 - 12:46

Setor, архивировать участки это я вторым вариантом тебе сказал. Основной вариант ... в настройках MySQL ставишь что база должна храниться в PkZIP виде и всё. То есть движок базы сам заботится обо всем.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...

#8 Setor

Setor
  • Постоялец
  • 1 890 сообщений
  • Откуда:Эстония, Таллин

Отправлено 11 Июль 2005 - 13:05

CyBurglar, значит ты всё же предлагаешь мне остановиться именно на UTF-8? Но какой в этом смысл, если я разрешаю символы только 2х языков: русский и эстонский + цифры и некоторые спец. символы?

Сообщение изменено: Setor (11 Июль 2005 - 13:21 )

  • 0

#9 ParadoxL

ParadoxL
  • Постоялец
  • 4 756 сообщений
  • Откуда:Edinburg

Отправлено 11 Июль 2005 - 13:23

Setor, нет ... я тебе не говорю чтобы остановится на чем либо. Я лишь ответил на поставленные тобой вопросы. Все зависит от программиста ... можно и на однобайтовых страницах написать хорошую вещь в плане компабилити. На все воля Божья. Лично от себя, я выбирают концепцию исходя из конкретного тех. задания и потенцальной возможности ее расширения и если я не вижу необходимости использовать Unicude по причине ненадобности или причине безопасности, совместимости аль из-за ресурсных потенциалов ... то я не использую. Если же приходится работать уже с стартовавшим проектом, то без неоправданной необходимости так же не буду переходить в Unicode.
  • 0
Victoria nulla est, Quam quae confessos animo quoque subjugat hostes ...
Верю в смерть после жизни, любовь после секса и в крем после бритья ...