UTF us koi8-r (в чём разница)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

Аватара пользователя
Gubka_Bob
Сообщения: 96

UTF us koi8-r

Сообщение Gubka_Bob »

а почему некоторые ставят UTF а не koi8-r
обьясните тупому в чём разница?
Спасибо сказали:
Аватара пользователя
heil0
Сообщения: 545
Статус: Депрессивный токарь с Межделмаша
ОС: *buntu, OpenSolaris

Re: UTF us koi8-r

Сообщение heil0 »

Gubka_Bob писал(а):
22.09.2006 17:24
а почему некоторые ставят UTF а не koi8-r
обьясните тупому в чём разница?

Так как сам тупой, буду отвечать.
UTF-8 страшно прогрессивная кодировка, и если её все поставят, то всем-всем нациям и языкам придёт счастье,потому что в 2 бита по идее можно упаковать все письменности мира, включая чукчей и жителей Удава.
Koi8-r это пережиток прошлого, исконно русская кодировка. Но кроме России никому не нужна, поэтому вечные проблемы с именами и кракозябрами русских дисков под нерусскими буржуйскими операционными системами :).
Все на Юникод!
iMisanthrop
heil0's blog
heil0@jabber.ufanet.ru
Linux registered user #400177.
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: UTF us koi8-r

Сообщение serzh-z »

Позволю себе скроменько заметить, что UTF-8 - это не 2 бита, и даже не 2 байта...
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: UTF us koi8-r

Сообщение sash-kan »

по-простому так:
один байт (в том смысле, что — октет, т.е. 8 бит) — это 256 значений.
половина (128) отведена под латинский алфавит, знаки пунктуации и всякий мусор.
отведена — и всё. и неприкасаема. во имя обратной совместимости. это святое. во веки веков. аминь.
во вторую половину можно уместить от силы пару азбук.
к примеру, кириллицу (абвгд...) и гречаницу :) (αβγδε...)
а как быть с остальными алфавитами?
тут есть много вариантов.
например, такой:
пронумеровать все символы необходимых азбук по порядку. сколько бы их ни было.
на данный момент зарезервировано порядка 2 в 32-й степени знакомест.
заполнены, конечно, далеко не все. да и вряд ли когда-то будут полностью заполнены.
но так, на всякий случай...
получаем — для представления одного символа требуется 4 октета (32 бита).
грубо говоря, это и есть utf-32.
четыре байта на один символ? жирно.
начинаем изворачиваться.
пусть длина одного символа (в байтах) будет переменной.
байты со значениями от 0 до 127 — то самое, святое (см. выше).
а остальные будем считать служебными.
и рассматривать их таким образом:
если служебный байт начинается с комбинации битов 10, то берем следующий за ним один байт и получаем такую картину:
10xxxxxx xxxxxxxx
где x — произвольные биты.
дополняем эти биты слева нулями до общего числа 32:
00000000 00000000 00xxxxxx xxxxxxxx
и рассматриваем эту белиберду как символ из той самой utf-32.
вы справедливо заметите — но это ведь всего 2 в 14-й степени символов! а где же остальные?
а вот где:
если служебный байт начинается с комбинации битов 110, то берем идущие за ним _два_ байта:
110xxxxx xxxxxxxx xxxxxxxx
и точно так же дополняем не-служебные биты нулями слева:
00000000 000xxxxx xxxxxxxx xxxxxxxx
и получаем уже 2 в 21-й степени символов.
а если служебный байт начинается с комбинации битов 1110, то берем идущие за ним _три_ байта:
1110xxxx xxxxxxxx xxxxxxxx xxxxxxxx
и так далее.
думаю, вы и сами уже догадались, что для кодирования _всех_ на данный момент зарезервированных знакомест с головой достаточно уже и служебного байта, начинающегося с 11110. ведь после него будет выбрано уже четыре байта, да плюс три бита из служебного байта — уже перебор.
вот это и есть та самая пресловутая кодировка utf-8.
когда для представления одного символа может использоваться разное число байт.
от одного до (пока) пяти. а теоретически — до восьми (но мы с вами скорее всего до этого момента не доживем).
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: UTF us koi8-r

Сообщение alv »

2sash-kan
блестящее описание
м.б. типа статьи из этого сделаете?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: UTF us koi8-r

Сообщение sash-kan »

(alv @ Sep 22 2006, в 20:59) писал(а):м.б. типа статьи из этого сделаете?
да по-моему статьями о utf полны ночные горшки :)
мне просто было лень искать :D
и я просто оттачивал почерк. (кстати, что-то такое написал какой-то знаменитый американец в ответ на какие-то там возмущения не то конгрессменов, не то еще кого... не помню. может, кто напомнит. поиск в google не помог :))
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: UTF us koi8-r

Сообщение sash-kan »

плюс ко всему я сейчас уже одну статью пишу — про безиндикаторную работу с несколькими раскладками клавиатуры.
чем больше пишу, тем больше приходит в голову. надо насильно ограничиваться. а то никогда не закончу.
но если вдруг закончу — место выкладки — на posix.ru
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
StraNNicK
Бывший модератор
Сообщения: 1005
Статус: добрый хиппи

Re: UTF us koi8-r

Сообщение StraNNicK »

На своём компьютере Вы вольны использовать любую кодировку. Разницы нет.

Однако же - почему юникод?

Начнём с того, что Gnome и KDE изначально юникодные. И для нормальной работы с другой кодировкой приходится предпринимать некоторые (хотя и несложные) телодвижения (например экспортировать переменную окружения G_BROKEN_FILENAMES).

Далее - юникод становится общемировым стандартом. Мало-помалу на него переходит всё больше дистрибутивов. Lingua franca, так сказать...

И напоследок - приятная мелочь.
Вот так выглядит монтирование win-диска в koi8-r:

Код: Выделить всё

mount -t vfat -o iocharset=koi8-r,codepage=866 /dev/hda5 /mnt

а вот так - в юникоде:

Код: Выделить всё

mount -t vfat -o utf-8 /dev/hda5 /mnt


P.S. Хорошая статья про юникод
Ушёл навсегда. В личку не заглядываю.
Спасибо сказали:
Аватара пользователя
georgy_sh
Сообщения: 1172
Статус: thermonuclear...
ОС: GNU/Linux

Re: UTF us koi8-r

Сообщение georgy_sh »

А я вот тоже собираюсь прикупить себе новый жесткий диск, но поставив на него Debian и обязательно UTF-8.

А то я до сих пор под KOI8-R и рус/лат по Alt+Space (привет, sash-kan)! :)
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: UTF us koi8-r

Сообщение alv »

sash-kan писал(а):
22.09.2006 22:56
да по-моему статьями о utf полны ночные горшки

и многие из них вполне соответствуют содержимому оных :)
а тут
а) стиль
б) сам по себе ход рассуждений
Так что не скромничайте
Ну и про несколько раскладок - оно тоже
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: UTF us koi8-r

Сообщение alv »

(StraNNicK @ Sep 23 2006, в 04:19) писал(а):юникод становится общемировым стандартом

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

А вообще, тема жевана, пережевана и многократно проглочена, в том числе и на этом форуме.

Потому, не повторяя аргументации, приведу основные выводы:
если работать преимущественно в консоли, предпочтительна 8-битная кодировка (любая, но koi8 доставит меньше всего осложнений)
если работать преимущественно в KDE или Gnome, по указанной выше Странником причине можно использовать _любую_ кодировку
юникод становится практически необходимым, если нужно работать более чем с двумя языками_чарсетами
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: UTF us koi8-r

Сообщение sash-kan »

alv
спасибо на добром слове.
по поводу своего поста — думаю, что он отлично смотрится именно в формате поста.
и на статью никак не катит. потому что приоткрывает лишь один маленький нюанс.
поэтически можно сказать так:
этот пост — всего лишь пара снежинок на верхушке айсберга под названием unicode.
а у айсберга, как известно, помимо верхушки, есть еще бОльшая подводная часть.
а ведь есть еще и другие айсберги.
и все они плавают в гигантском океана под названием "проблемы представления письменностей и других печатных знаков в электронном виде".
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
StraNNicK
Бывший модератор
Сообщения: 1005
Статус: добрый хиппи

Re: UTF us koi8-r

Сообщение StraNNicK »

alv писал(а):
23.09.2006 09:34
(StraNNicK @ Sep 23 2006, в 04:19) писал(а):
юникод становится общемировым стандартом

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

Ну, если не считать того, что windows УЖЕ на юникоде. MacOS X УЖЕ на юникоде. А линукс активно переходит на юникод - то да не станет... :)
alv писал(а):
23.09.2006 09:34
если работать преимущественно в консоли, предпочтительна 8-битная кодировка (любая, но koi8 доставит меньше всего осложнений)

??? Что именно доставит затруднения, если кодировка будет utf?
Если дистрибутив нормальный (а-ля Дебиан) - вообще никаких проблем.
Если дистрибутив ЖЁСТКО заточен под одну кодировку - тогда да - будут проблемы... И то - не так чтобы смертельные.
Намёк - дистрибутивов второго типа немного. :)

Про CJK - насколько я помню, как раз мои знакомые японисты и анимешники юникоду сильно радуются. :)

Рекомендую к прочтению вот это. Особое внимание на ссылку в начале текста. Самое интересное в ней - позиция ALT Linux разработчика.
Ушёл навсегда. В личку не заглядываю.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: UTF us koi8-r

Сообщение sash-kan »

(StraNNicK @ Sep 23 2006, в 11:50) писал(а):Особое внимание на ссылку в начале текста. Самое интересное в ней - позиция ALT Linux разработчика.
спасибо за ссылку. да, посмеялся от души...
croco, как я понял, преподает что-то про оси в каком-то вузе?
жаль, не про что-нибудь более гуманитарное.
тогда бы, глядишь, и не начинал флейма о значении тех или иных терминов. и не увяз бы в терминологии. текст, символ, кодировка... как и любые понятия, их можно трактовать очень по-разному.
а alt linux разработчик — это, как я понял, vitus_wagner?
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Sniff
Сообщения: 330
ОС: Debian Lenny

Re: UTF us koi8-r

Сообщение Sniff »

Gubka_Bob писал(а):
22.09.2006 17:24
а почему некоторые ставят UTF а не koi8-r
обьясните тупому в чём разница?


У меня другой вопрос:
а почему некоторые ставят koi8-r, а не UTF?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: UTF us koi8-r

Сообщение serzh-z »

Sniff писал(а):
24.09.2006 00:25
а почему некоторые ставят koi8-r, а не UTF?
Слишком много софта (в том числе почти неподдерживаемого разработчиками), который некорректно работает с UTF-8... За примерами далеко ходить не надо - возьмем тот же mc.
Спасибо сказали:
BaBL
Сообщения: 767
ОС: Debian GNU/Linux SID

Re: UTF us koi8-r

Сообщение BaBL »

serzh-z писал(а):
24.09.2006 00:28
Sniff писал(а):
24.09.2006 00:25

а почему некоторые ставят koi8-r, а не UTF?
Слишком много софта (в том числе почти неподдерживаемого разработчиками), который некорректно работает с UTF-8... За примерами далеко ходить не надо - возьмем тот же mc.

А что с мц? с УТФ его глюки я видел где-то год назад, если не больше.
Спасибо сказали:
Аватара пользователя
Sniff
Сообщения: 330
ОС: Debian Lenny

Re: UTF us koi8-r

Сообщение Sniff »

serzh-z писал(а):
24.09.2006 00:28
Sniff писал(а):
24.09.2006 00:25

а почему некоторые ставят koi8-r, а не UTF?
Слишком много софта (в том числе почти неподдерживаемого разработчиками), который некорректно работает с UTF-8... За примерами далеко ходить не надо - возьмем тот же mc.


Не знаю - у меня в SUSE 10.1 проблем с кодировкой mc нет (к слову их вообще почти нет).
Хотя сам mc не пользуюсь, вот все же проверил:
Спасибо сказали:
Grom
Сообщения: 260
ОС: Debian Etch, RHEL-5.4

Re: UTF us koi8-r

Сообщение Grom »

(Sniff @ Sep 23 2006, в 16:25) писал(а):У меня другой вопрос:
а почему некоторые ставят koi8-r, а не UTF?


Я свою федору-3 перевел с утф на кои-8 (3 минуты работы).
1) предпочитаю работать в консоли
2) огромное число текстовых файлов в кои-8
3) не вижу смысла менять один костыль на другой -> http://bugtraq.ru/library/misc/encoding.html
Послужной список: Slackware-3.x, RedHat-4.x,5.x,6.x,7.x, FedoraCore-3, Debian Etch/Lenny
Осваиваю: RHEL-5.4
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: UTF us koi8-r

Сообщение alv »

(StraNNicK @ Sep 23 2006, в 12:50) писал(а):Ну, если не считать того, что windows УЖЕ на юникоде. MacOS X УЖЕ на юникоде. А линукс активно переходит на юникод - то да не станет...

Женя, ты же прекрасно понимаешь, о чем - ну не станет юникод единственным чарсетом. По крайней мере при моей жизни.
Про CJK - ну не хватает UTF8 им для полного комплекта.
А про консоль - как ты помнишь, и syscons и wscons, не говоря уж о pcvt, унутре 8-битные, и прикрутить к ним юникод проблематично.
И никто - НИКТО, как заметил Снейк в аналогичной теме (который раз по счету она возникает?) - не будет перекодировать нормативные документы из cp866. Конечно, со временем они все отомрут - но я уж до этого точно не доживу.
Спасибо сказали:
Аватара пользователя
StraNNicK
Бывший модератор
Сообщения: 1005
Статус: добрый хиппи

Re: UTF us koi8-r

Сообщение StraNNicK »

sash-kan писал(а):
23.09.2006 18:50
а alt linux разработчик — это, как я понял, vitus_wagner?

Нет, Алексей Новодворский.
Вот точная ссылка на то, что меня заинтересовало больше всего.
КРАЙНЕ рекомендую для прочтения. Причём всем заинтересованым.
Sniff писал(а):
24.09.2006 00:25
У меня другой вопрос:
а почему некоторые ставят koi8-r, а не UTF?

Во FreeBSD, например, юникод возможен только в Х-ах.
В линуксе:
необходимость работы в старых приложениях.
дистрибутив, жёстко заточеный под koi, когда легче поставить koi и не мучиться. Пример - Арч, где-то полгода назад (wolf_black написал даже последовательность шаманских действий, позволяющих получить вожделенный юникод. Скажем так - с кои всё было СИЛЬНО проще).
Всё, пожалуй.
Есть ещё такой довод - можно читать русские тексты в нелокализованной системе (получается транслит). Мне этот довод кажется ммм... надуманым.
alv писал(а):
24.09.2006 11:17
(StraNNicK @ Sep 23 2006, в 12:50) писал(а):
Ну, если не считать того, что windows УЖЕ на юникоде. MacOS X УЖЕ на юникоде. А линукс активно переходит на юникод - то да не станет...

Женя, ты же прекрасно понимаешь, о чем - ну не станет юникод единственным чарсетом. По крайней мере при моей жизни.
Про CJK - ну не хватает UTF8 им для полного комплекта.
А про консоль - как ты помнишь, и syscons и wscons, не говоря уж о pcvt, унутре 8-битные, и прикрутить к ним юникод проблематично.
И никто - НИКТО, как заметил Снейк в аналогичной теме (который раз по счету она возникает?) - не будет перекодировать нормативные документы из cp866. Конечно, со временем они все отомрут - но я уж до этого точно не доживу.

Единственным? Разумеется, нет!
Просто KOI постепенно отойдёт на второй план, как KOI7 или GOST-сколько-то. Или CP866.
Юникод станет доминирующим чарсетом. :) И очень скоро. Максимум - лет пять.
Про CJK - их проблемы. Спорить не буду, поскольку предметом владею слабо.
Про консоль: Алексей, вот не надо, а? Приведи примеры некорректно работающих программ. В той же Убунте или в Дебиане, где локализация вполне себе на уровне.
Про нормативные документы и прочая, и прочая. Вот смотри - документы в СР866, а локаль КОИ - всё нормально, а теперь - документы в СР866, а локаль юникод - кошмар! Кошмар!
Бред же, а?
Тем паче, в гос. конторах те документы, которые ещё остались в СР866 в полный рост пользуют на системах с юникодной локалью (это я про винХР) - и ничего. Если же мы говорим про старое железо - то там ни КОИ, ни утф точно нет. Потому как DOS и СР866. :)
P.S. Всё ж таки посмотри на ссылку. Показательна именно позиция альтовца.
Ушёл навсегда. В личку не заглядываю.
Спасибо сказали:
Аватара пользователя
alv
Бывший модератор
Сообщения: 7275
Статус: Пенсионер в законе
ОС: Cintu

Re: UTF us koi8-r

Сообщение alv »

(StraNNicK @ Sep 24 2006, в 19:56) писал(а):P.S. Всё ж таки посмотри на ссылку. Показательна именно позиция альтовца.

Что тут скажешь? Умный мужик АЕН, с ним можно только согласиться:
Повторюсь, проблема -- есть. Хорошего решения -- нет. Есть полухорошее.
Спасибо сказали:
Topper
Бывший модератор
Сообщения: 2088
Статус: Насильник бабушек-педофилок
ОС: Windows 10

Re: UTF us koi8-r

Сообщение Topper »

(alv @ Sep 24 2006, в 20:31) писал(а):Что тут скажешь? Умный мужик АЕН, с ним можно только согласиться:

если я не ошибаюсь, то именно с ним мы беседовали на позарошлом софтуле...
Хрю.
Спасибо сказали:
Аватара пользователя
StraNNicK
Бывший модератор
Сообщения: 1005
Статус: добрый хиппи

Re: UTF us koi8-r

Сообщение StraNNicK »

Повторюсь, проблема -- есть. Хорошего решения -- нет. Есть полухорошее.

Ага. Только koi - тоже полухорошее. Нет у него преимуществ (кроме того, что в некотором старом софте он есть, а юникода - нет). Зато, как было справедлиао указано им же - практически весь свежий софт идёт в юникоде, а в других кодировках зачастую и не тестируется.

Вообще, локаль-то на самом деле - пофиг какая. А вот на уровне приложений юникод рулит просто безбожно. Сравните ICQ и джаббер. Или IRC и SILK (или тот же Jabber). Или mp3 и ogg (я имею в виду тэги).
Зря что ли помянутые ICQ, IRC и mp3-теги перешли (ну, IRC не везде) на utf?

Lingua franca - вещь полезная.
Ушёл навсегда. В личку не заглядываю.
Спасибо сказали: