Использовать ли UTF-8?

Frol

Новичок
уважаемый Jackyk, вы уже две недели выбираете кодировку для какого-то сайта про машины.
вам самим не кажется это странным?
перед выходом на улицу вы обувь также долго выбираете?
почему вы ищите какой-то тайный смысл юникода?
 

maxim

Новичок
Я могу сказать про минусы которые заметил я. Правда они по большей части косвенные.

1) Любимый фар для правки файлов не подходит.
2) половина стандартных средств просмотра и редакторов вместо русских букв напишут нечто непонятное
3) для работы со строками надо использовать строковые функции с префиксом mb_

А плюс для меня был только при работе с мультиязычным сайтом.
 

alekciy

Новичок
Что-то я не уловил, это ЗА UTF-8 или против...

-~{}~ 15.07.06 01:11:

Frol
Хм... а я вот тему нахожу любопытной. Так почему бы ей не быть?
 

Jackyk

Guest
Ув. Frol , отвечаю.
Автор оригинала: Frol
уважаемый Jackyk, вы уже две недели выбираете кодировку для какого-то сайта про машины.
вам самим не кажется это странным?
Нет, не кажется. То-то и оно, что для меня это не просто "какой-то сайт про машины". Для меня на данный момент это единственный и важнейший проект. Делаю я его не для заказчика, а для себя, делаю не на один день, а для того, чтобы он мог прочно войти в автомобильный интернет России в качестве полезного, интересного и авторитетного ресурса по новым автомобилям, а также большого сообщества.
Автор оригинала: Frol
перед выходом на улицу вы обувь также долго выбираете?
Сказанное мной про 2 недели не стоит воспринимать буквально. Это не значит, что все 2 недели я только этим и занимаюсь, не делаю больше вообще ничего, а также не ем и не сплю. Всё идет своим чередом, доводится движок, настраивается выделенный сервер и т.д..
Тем не менее, по поводу использованной Вами аналогии - да, я стараюсь принимать важные решения не методом подбрасывания монеты, а методом изучения сабжа и осознанным выбором.
Автор оригинала: Frol
почему вы ищите какой-то тайный смысл юникода?
Потому, что это решение надо принять сейчас, и потому, что потом не так просто будет исправить последствия ошибочно принятого решения.
И, похоже, "тайный смысл" искался всё же не зря. Уже после открытия этой темы мне стал известен первый реальный пример, когда различие действительно может иметь последствия.
Вкратце: существует удобный и бесплатный плагин к нашей CMS, расширенный поиск на основе Lucene. Как сообщил мне разработчик, данный плагин весь backend хранит в UTF-8. По его словам, это делает Unicode фактически незаменимым для использования данного плагина. Не знаю уж, сколь применимо тут слово "незаменимый", наверное, можно как-то и конвертить на лету, но даже если заменить "незаменимый" на "более желательный", "более корректно работающий", или просто "готовый к работе без напильника" - это уже очень важный фактор. Похоже, что использование западного софта и западных к нему плагинов делает выбор Unicode более правильным, нежели windows-1251, так как контент в Unicode будет однозначно совместим со всем, а вот контент в windows-1251 может показывать некорректную работу либо невозможность использования тех или других важных вещей без дополнительной доработки, а я не программист.

Если можно, пара вопросов к тем, кто знает.

1. Какое значения collation лучше выбрать для MySQL - utf8_general_ci или utf8_unicode_ci? Чем они отличаются, я знаю, но не знаю, сколь принципиальны эти отличия, и как влияет выбор расширенной кодировки utf8_unicode_ci на серверную нагрузку.
2. Если выбрал одно из них, а потом выяснилось, что выбрал неверно, насколько просто/сложно потом поменять collation? Тоже перекодировка всей базы, или всё проще?
Спасибо.
С уважением, Евгений.
 

SiMM

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

> Тоже перекодировка всей базы, или всё проще?
Сам по себе UTF-8 бывает только один
 

antivir

Новичок
Сам по себе UTF-8 бывает только один
А почему здесь ( http://ru.wikipedia.org/wiki/Unicode ) написанно:
Юникод имеет несколько форм представления: UTF-8, UTF-16 (UTF-16BE, UTF-16LE) и UTF-32 (UTF-32BE, UTF-32LE).
и в дополнение:
В Microsoft Windows NT и основанных на ней системах Windows 2000 и Windows XP в основном используется форма UTF-16LE. В UNIX-подобных операционных системах GNU/Linux, BSD и Mac OS X принята форма UTF-8
- что, получается вод виндами одна кодировка, а в UNix другая?

И ещё вопрос: почему в таблице кодов http://unicode.coeurlumiere.com/ очень много знаков вопроса в ячейках ? Это просто пустые, незарезервированные коды или что?

-~{}~ 17.07.06 12:45:

и ещё: скажите, а делая сайт на UTF нужно использовать UTF и как кодировку PHP-скриптов или не обязательно?
 

mani13

Новичок
antivir
UTF-8 - это ПРЕДСТАВЛЕНИЕ Unicode символов.
Так что определитесь, что вам нужно -- разные ПРЕДСТАВЛЕНИЯ Unicode или всё-таки КОНКРЕТНОЕ ПРЕДСТАВЛЕНИЕ в виде UTF-8.
Вопросы -- у вас в шрифте нет этих символов.
 

alekciy

Новичок
Вот к примеру одно "за" при использовании UTF:
Alehandros
Да, еще один момент: если через XmlHttpRequest мы собираемся отправлять с сервера клиенту строки с русскими (или в др. кодировках) символами, и они изначально были не в UNICODE (а у меня, например, все таблицы в MySQL держат данные в Windows-1251), то при подготовке отправляемой строки ее придется переводить в формат UTF-8. В PHP, например, это делается с помощью функции :


$response = mb_convert_encoding($mystring_1251,'UTF-8','Windows-1251');
echo $response;

Соответственно, если с клиента пришел AJAX-запрос (например, при интерактивном поиске сотрудника по фамилии), его содержимое придется переводить обратно из Unicode (UTF-8) в свою кодировку...(в примере выше у функции меняем местами 2-ой и 3-ий аргументы)
А все из-за того, что XMLHttpRequest работает только с юникодовыми строками и все перегоняет в UTF, не спрашивая нашего мнения на этот счет.
 

antivir

Новичок
Скажите, а функции mb_ имеют аналоги всех стандартных строковых функций? Как быть с регулярными выражениями?
На саму суть программирования не влияет текст в многобайтовых кодах?
 

SiMM

Новичок
> Скажите, а функции mb_ имеют аналоги всех стандартных строковых функций?
[m]mbstring[/m], [m]strings[/m]

> Как быть с регулярными выражениями?
[m]reference.pcre.pattern.modifiers[/m] => PCRE_UTF8
 

antivir

Новичок
SiMM
пасиб.

-~{}~ 11.10.06 14:03:

Кто-нибудь знает, HomeSite может работать с UTF-8?
 

Битник

Новичок
Автор оригинала: Jackyk
1. Какое значения collation лучше выбрать для MySQL - utf8_general_ci или utf8_unicode_ci? Чем они отличаются, я знаю, но не знаю, сколь принципиальны эти отличия, и как влияет выбор расширенной кодировки utf8_unicode_ci на серверную нагрузку.
Я тоже хотел бы это знать :)
 

alekciy

Новичок
Мда... в свете такой вот экспрессивной статьи: "Композиция, нормализация и уроды" (http://live.julik.nl/2005/12/composition-normalization-and-morons) и таких вот проблем с этой UTF http://phpclub.ru/talk/showthread.php?s=&postid=692086 скорее слоняешься думать, что в текущей реализации многобайтная кодировка нужна как пятая нога собаке.
 

riff

Новичок
По поводу кодировок Win1251 vs UTF-8:
проясните, кто знает, пожалуйста, ещё такой момент:
Если сайт выдает страницы в Win1251, то поймут ли написанное линуксоводы, маковцы?
И если дизайн расчитан на шрифт Arial, а циферки в табличках лучше смотрятся при
font-size: 9pt;
font-family: "MS Sans Serif";
то в других OS будут ли проблемы с наличием этих шрифов?

И ещё такой вопрос : предположим сайт выдаётся в кодировке Win1251 - смогут ли его прочитать украинцы, казахи, немцы? и смогут ли если сайт в UTF-8?

я в этих кодировках и шрифтах как рыба об лёд
 

alekciy

Новичок
riff
>Если сайт выдает страницы в Win1251, то поймут ли
написанное линуксоводы, маковцы?
А почему нет? Тип кодировки передается в HTTP заголовках, и если браузер понимает этот вид кодировки, то все будет нормально.

>то в других OS будут ли проблемы с наличием этих шрифов?
Если шрифта в системе нет, значит его нет. С кодировкой символов это ни как не связано. Просто нормальный браузер проигнорирует указанный шрифт елси у него такого нет и попытается подобрать схожий.
Вообще этот аспект неплохо расписан в CSS спецификации, почитатй там.

>предположим сайт выдаётся в кодировке Win1251 - смогут ли
>его прочитать украинцы, казахи, немцы?
См. первый ответ.
 
Сверху