Прямо дорога в светлое будущее. :)
На практике куча геморроя. UTF-16 и то лучше для большинства юзеров (которым не нужны суррогаты) была бы, за счёт символов одинаковой длины.
Ну, это понятно... Но на практике каждое ТЗ начинается "мы будем использовать Уникод (в различных вариациях: UCS[-x], UTF-8)", а как доходит до реализации, начинаются геморои: а как передавать (UTF-какой?), как защищаться от дублирования ников (символы с похожими очертаниями), что делать с китайскими символами в полях ввода, введёнными глупыми пользователями, что делать при рассинхронизации потока в протоколе (или в legacy-файловом формате), что делать с существующей инфраструктурой в других кодировках и с другим уровнем поддержки юникода и т.п.
Тогда как вариант с использованием одной из cp1251/koi8-r/cp866 уже опробован и гарантированно убирает бОльшую часть таких неожиданностей.
хрен с ним с апокалепсисом, вижить, вероятность 1%. Откуда столько пафоса? занимайтесь лучше улучшением своей жизни, не сейте в массы панику)) а то дуриков много вдруг ещё кто в дот залезет ожидать чего-либо
Кстати а причем здесь "англизация" юзеров. UTF-8 как раз создан для того, чтобы помочь не "англизованным" юзерам. Унификация и стандартизация в этой области это путь как минимум к безбаговости в области просмотра интернациональных контентов.
Легче общаться носителям одного и того же языка - да, решена проблема кодировок. Но тут UTF-8 преподносят как решение легендарной проблемы разноязычия :)
Ну можно также сказать, цель оправдывала средства (риск).
Ну а вдруг бы построили, представляете сколько мы бы сэкономили на ракетах, шатлах и т.д.. =)
Если бы Эльбрус сделали пораньше, то все бы сейчас обходились кирилицей. Это был хоть прогнозируемый, но рандом.
Я всегда считал что язык должен быть один - английский ОК для меня. Но меня убедили что для разнообразия может быть еще несколько(а иногда это удобно).
Так что моя вавилонская башня состоит из одного общего и десятка языков чтобы все на всех уж слишком сильно не походили.
Pri gusto de vino mi parolas kun tiu, kiu gxin gustumis. Pri utileco de libro mi parolas kun tiu, kiu gxin tralegis. Pri beleco de esperanto mi parolas kun tiu, kiu gxin ellernis. Do, kial vi pensas ke Esperanto estas acxa?
О вкусе вина я говорю с тем, кто его пробовал. О полезности книги я говорю с тем, кто её прочитал. О красоте эсперанто я говорю с тем, кто его знает. Итак, почему ты думаешь, что эсперанто убожество? (отвечать на эсперанто!)
Независимость смысла от места слова в предложении есть не только в русском.
У эсперанто еще фонетика на испанский похоже. Для азиатских народов это сложно выговаривать. Да и английский знают по всему миру уже. И он и есть стандарт международного общения.
Это конечно круто, что он выделяет. Но если я приеду в другую страну и, захотев кушать, пойду в простую мелкую закусочную - то я предпочту, чтобы продавец там знал международный язык.
Что такое язык междунардного общения? Это язык, который может использоваться для общения между народами. То есть, грубо говоря, язык на котором ты с большой вероятностью сможешь поговорить с первым встречным в другой стране (не в той, где ты живёшь). Это английский, испанский, французский, может быть китайский (китайцув сейчас можно в самых разных странах встретить). Но уж никак не эсперанто.
Это всё равно как предлагать использовать X.400 вместо SMTP для почты: да, есть масса преимуществ. Да, спамерам жилось бы гораздо хуже. Но... с кем вы собрались переписываться?
Да, но если мы вычтем из общего количества (total speakers) носителей языка (native speakers), то для китайского получится только 451 миллион, а для английского 650 миллионов - эти цифры куда важнее для применения в международном общении. Просто китайцев - гигантское количество, неудивительно, что они говорят на своём же языке.
> язык на котором ты с большой вероятностью сможешь поговорить с первым встречным в другой стране
Определение понятно. Да, эсперанто под него не подходит.
Но как тогда назвать язык, который каждый день используют тысячи разностранцев по всему миру, язык, международное использование которого на порядок превышает внутринародное (эсперантисты-соотечественники между собой почти всегда используют свой национальный язык, некоторые даже принципиально)?
По ссылке я не ходил, но её осуждаю. Википердия пишет фигню (что нередко случается).
Ходить надо не туда, а на www.unicode.org.
Там, к примеру, написано, что "Unicode characters may be encoded at any code point from U+0000 to U+10FFFF", т.е. может быть до трех значащих байт на символ (но использовать при этом придется UTF-32, в коей от 4 байт на символ). Соотв. символ с кодом 10FFFFh в UTF-8 будет занимать те самые шесть байт.
Кодировку с названием UTF-32, хотя и можно построить, никто нигде не документировал, не программировал и не использует. Вы, вероятнее всего, имели ввиду UCS-4.
Ага, и меня дырявая башка подвела.
Только одного боюсь - чую, юникодная шайка на 110000h символах не остановится. Уже понапихали туда чуть ли не египетские иероглифы...
Известная фишка (годовалой или двухлетней давности) - в Юникод, даже с суррогатами (пресловутыми символами дальше 65535го), не входят иероглифы имён нескольких высокопоставленных китайских деятелей - лидеров страны с 1,5 миллиардами людей населения.
В частности и поэтому (но не только из-за этого, а по многим другим причинам) даже в азиатском регионе используют проприетарные двухбайтовые кодировки, где одинаковый, в сущности, иероглиф может занимать два кодепойнта (наподобие кириллических букв, имеющихся и в латинице), в зависимости от того, японский он или китайский, или ещё из-за каких-то факторов.
В каждой стране свой язык. Еслиб был бы один язык на всех, то была бы и одна страна на всех? А если одна страна, то с кем ей соперничать и конкурировать, а т.к. изза конкуренции и идет развитие, то в одной стране на всю планету не было бы прогресса, не было бы компьютеров, и как следствие - не было бы кодировок.
Тем не менее, радует то, что в большинстве последних дистрибутивов Linux по умолчанию utf-8. Радует то, что в интернете много статей про проблемы с локалями, про перенос баз из одной кодировки в другую и так далее. Даже смартфоны под Symbian используют utf-8. Прогресс на лицо :-) Что не делается - всё к лучшему
Боюсь, вы просто не в курсе: Вавилонская башня - рядовой междуреченский зиккурат, а куча языков была и до неё. А чтобы не мучиться с кодировками достаточно было не строить компьютеры.
Это сейчас у всех быстрый интерент и огромные диски и флешки, и все радуются utf-ам и кричат, что utf круто! Конечно utf круто, и мы со временем придем к тому, что останется только он. Но простите, 20 лет назад не было столь масштабных международных глобальных сетей, высоких скоростей и емких носителей, так что 256 символов ASCII (однобайтовая кодировка) был оптимальный вариант.
кстати, регулярно в рунете замечаю ресурсы, где страница записана в CP-1251 и к тому же этот факт еще и не указан в HTTP-хедере.. как результат, слетает кодировка в браузере
на вопрос "почему ты не юзаешь utf-8?" таким "вебмастерам" следует ответ "а зачем?"
про 1Ц - отдельный разговор. они в приципе понимают только либо CP866, либо CP1251... Бухгалтерам больше и не нужно... Да и вообще, 640 килобайт должно хватить.. Копирайт сами поминте.. Вот 1С тем же путем идет.
Вот с какими проблемами кодировки символов может столкнуться тот, кто программирует на Java:
http://www.javaportal.ru/java/articles/ruschars/ruschars.html
Кодировки — это фигня, сейчас UTF-8 везде (кроме, почему-то, Хабра и ещё некоторых мест). Основная долбёжка происходит со всякими арабами-евреями-сирийцами с их двунаправленным письмом и с языками Азии (композит на композите сидит и композитом погоняет). И веб-приложения от этого тоже не избавлены.
К сожалению UTF-8 хотя и является сайчас самой распространённой кодировкой, но далеко ещё не везде. А в отдельных регионах (скажем в России или в Японии) другие кодировки всё ещё популярнее, чем UTF-8.
До недавних времён она была дефолтной в X для русского языка. Только в этом году сменили, "потому, что никто всё равно не пользуется" на UTF-8. Не прошло и десяти лет...
Тык, дело в нас самих. Если бы кто-то умный из наших поднял бы этот вопрос раньше, сменили бы раньше. Хватит уже и того, что буржуи больше нас самих над поддержкой русского в юникоде работали.
А вот кстати про проблему апача с кодировками в модуле mod_autoindex почему то нигде ничего не написано. Видел где-то только, что там тупо в исходник прописана ISO. Обидно :-( Даже DefaultCharacterSet не помогает
этих ЮТФ кодировок тоже не мало...
одни программы понимают ЮТФ8, но не понимают ЮТФ16, другие - наоборот.
одни понимают БОМ, а другим от него становится плохо.
Проблемы будут до тех пор, пока программисты кодеры будут лениться реализовывать UTF в своих программах. До тех пор пока будут альтернативы обязательно найдется человек, который захочет их использовать (и будет с пеной у рта доказывать что только так и надо). А на самом деле, это проистекает от того, что начинающий программист слушал "эксперта", который, наслушавшись других "экспертов" вещал, что юникод это сложно, это много памяти и что непереносимо.
Вообще, в инете была где-то статья; называлась что-то вроде "Мифы о Unicode" там хорошо были описаны аппаратные и, главное, психологические проблемы перехода на юникод. Если кто знает ссылочку, поделитесь пожалуйста :)
Когда-то ушёл с Bred'a на PHP Expert Editor из-за отсутствовавшей поддержки UTF-8. У стех пор прошло много времени и Bred уже поддерживает UTF-8, но я остался на PHPEE.
Надо чтоб microsoft обновление для IE выпустило, в котором все кодировки кроме utf удаляются. Все вебмастеры тогда забегают и переведут сайты на utf-8. ))
А подскажите, кто знает, скрипт для batch перекодирования из cp1251 в utf-8 файлов на хостинге. Язык любой.
А то с прежних времен скопилось много кода, весь на 1251.
В unix-е для любого plain-text файла можно: cp FILE FILE.cp1251 && iconv -f cp1251 -t utf-8 <FILE.cp1251>FILE && rm FILE.cp1251
или, если есть: enconv -L ru -x utf8 FILE
Но это самая простая часть. Сложнее найти и поправить всякие меты с content-type в html файлах, проверить и отладить скрипты на работу с юникодом (вывод, ввод, сортировка, регекспы), переконфигурировать апач, если надо.
PS: команды я проверил, но никому не доверяй, даже мне! Забэкапь все предварительно и протестируй на чем-нибудь не важном :)
spiritedflow
а я вот измучился с iconv на AIX
# iconv -f CP1251 -t UTF-8 multcrcrit_help.htm > test.htm
iconv: 0791-004 cannot open converter
как толька я эту CP1251 не писал и маленькими буквами и windows-1251 - ну не находит AIX конвертера и все тут! Нашел список кодировок AIX - в нем действительно нет упоминания про кодировку 1251. Ни UNIX, ни Linux у меня нет, тока AIX и WIN. Что делать - ума не приложу. Может кто сможет подсказать как быть. У меня несколько тысяч htm файлов и мне с ними notepad'ом не управиться никак :-(
Кодировки