Tomsk Sysadmins Forum

Unix => Разное => Topic started by: alexi on February 02, 2005, 10:53:04

Title: Кодировка KOI8
Post by: alexi on February 02, 2005, 10:53:04
Народ, что вы думаете по поводу добровольного отказа от кодировки КОИ8?
Я понимаю очень сложно отказаться от накопленных текстов и прочее, но приведение русификации линуха к стандарту предполагает соглашение между всем участниками процесса -  и разработчиками, и пользователями. А КОИ8 во многих случаях неудобна.

Title: Кодировка KOI8
Post by: SinClaus on February 02, 2005, 10:59:51
Negative!
Если дойдет до того, что юзеру будет ставиться машина, а он за неделю не сможет понять, какая операционка там стоит (конвергенция называется) - тогда пожалуйста!
Между прочим, моей рабочей винде абсолютно по барабану, в какой кодировке набран текст, в хNIXе иногда приходится набрать лишнюю строчку.
Title: Кодировка KOI8
Post by: stranger on February 02, 2005, 12:22:38
Quote
Народ, что вы думаете по поводу добровольного отказа от кодировки КОИ8?
Я понимаю очень сложно отказаться от накопленных текстов и прочее, но приведение русификации линуха к стандарту предполагает соглашение между всем участниками процесса -  и разработчиками, и пользователями. А КОИ8 во многих случаях неудобна.
[snapback]802[/snapback]
Ну уж нет... Пусть кои8 остается... Вообще-то кои8 появилось раньше - это потом винда приперлась со своими стандартами...
Да и сейчас какже я начинаю материться когда какой-нибудь юзверь присылает почту в юникоде с какого-нибудь ненастроенного аутлука...
Title: Кодировка KOI8
Post by: alexi on February 02, 2005, 12:29:54
Quote
Ну уж нет... Пусть кои8 остается... Вообще-то кои8 появилось раньше - это потом винда приперлась со своими стандартами...
Да и сейчас какже я начинаю материться когда какой-нибудь юзверь присылает почту в юникоде с какого-нибудь ненастроенного аутлука...
[snapback]806[/snapback]

Ну так вот чтобы не материться в таких случаях и придумали стандарты.
КОИ8 можно заменить на уникод. К нему и виндовозная кодировка близка, и перенос файлов между системами можно будет легко производить.

И потом а чем собственно так хороша КОИ8? Помоему таже виндовозная кодировка удобнее в разы. Я не говорю об уникоде который вроде как тянет на стандарт, а юникс вроде как тоже жестко стандартизованная система.

С сегодняшнего дня ни строчки не пошлю по емайлу в КОИ8.

Title: Кодировка KOI8
Post by: stranger on February 02, 2005, 15:22:31
Quote
Ну так вот чтобы не материться в таких случаях и придумали стандарты.
КОИ8 можно заменить на уникод. К нему и виндовозная кодировка близка, и перенос файлов между системами можно будет легко производить.

И потом а чем собственно так хороша КОИ8? Помоему таже виндовозная кодировка удобнее в разы. Я не говорю об уникоде который вроде как тянет на стандарт, а юникс вроде как тоже жестко стандартизованная система.

С сегодняшнего дня ни строчки не пошлю по емайлу в КОИ8.
[snapback]807[/snapback]
А ты представляешь если сейчас весь спам будут посылать в юникоде... Как ты думаешь что будет с сетями?
По поводу КОИ8 - это и был стандарт по обмену электронной почтой и работы в среде юникс... Хотя бывали и исключения... Проблема в том, что крупные производители не прислушиваются к региональным проблемам и пытаются навязывать свои... Пример мелкософт и погрызенное яблоко...

В принципе юникод с одной стороны весчь хорошая, но с другой - это как на оракле держать мааааленькую базу.... Недоработана пока поддержка в прогах для него даже у мелкогософта....
Title: Кодировка KOI8
Post by: Dimmus on February 02, 2005, 15:35:26
а у меня UTF-8 - проблем много, зато более удобна, чем KOI8
Title: Кодировка KOI8
Post by: stranger on February 02, 2005, 16:55:11
Quote
а у меня UTF-8 - проблем много, зато более удобна, чем KOI8
[snapback]815[/snapback]
И в чем енто удобство выражается?
Title: Кодировка KOI8
Post by: demiurg on February 02, 2005, 17:13:16
Quote
а у меня UTF-8 - проблем много, зато более удобна, чем KOI8
[snapback]815[/snapback]
Странное удобство.  :blink:

С UTF-8 есть проблема -- под винду нет нормальных ftp клиентов понимающих UTF-8 (может только far.....) кроме того, какой смысл, если даже в винде сплошь и рядом win1251.

Я считаю, что еще рано думать о UTF-8. А менять шило на мыло (koi8-r на win-1251) какой смысл?

С koi-8r у меня одна проблема -- отсутствие mod_iconv для proftpd, чтобы любители кириллицы могли видеть в нормальном виде то что они складывают в домашние каталоги по самбе. (vsftpd, для которого такая поддержка перекодировок есть, меня не устраивает по причине убогости конфига).

Я сам никогда не называл файлы русскими пуковками (тяжелое детство с M$DOS сказывается...  :) и не буду делать это в ближайшем будущем.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 02, 2005, 19:24:28
Quote
И потом а чем собственно так хороша КОИ8? Помоему таже виндовозная кодировка удобнее в разы.
[snapback]807[/snapback]

так в 1251 сам микрософт не уверен!

как можно назвать ситуацию, когда в одной и той же операционной системе гуёвые приложения работают в одной кодировке, а консольные в другой? (866).
это даже не бардак...

а KOI-8 - она хотя бы одна :)
Title: Кодировка KOI8
Post by: mars on February 02, 2005, 20:15:50
Quote
С сегодняшнего дня ни строчки не пошлю по емайлу в КОИ8.
[snapback]807[/snapback]
Лично я уже давно письма отправляю _только_ в кои8 ;)
Title: Кодировка KOI8
Post by: -ud- on February 02, 2005, 22:47:31
Лично я пользуюсь только двумя языками - русским и английским, и меня вполне устраивает KOI8-R для работы с русским. Автору видимо заняться нечем...
Title: Кодировка KOI8
Post by: demiurg on February 03, 2005, 00:31:24
Quote
Лично я пользуюсь только двумя языками - русским и английским, и меня вполне устраивает KOI8-R для работы с русским. Автору видимо заняться нечем...
[snapback]829[/snapback]
Флейм http://www.sysadmin.tomsk.ru/index.php?showtopic=96 (http://www.sysadmin.tomsk.ru/index.php?showtopic=96) как-то сам собой затих. (После того как все высказались по второму кругу ;))
И вот новая тем для холивара, теперь уже на почве кодировок. :angry:
Title: Кодировка KOI8
Post by: AdVv on February 03, 2005, 10:29:24
Quote
Флейм http://www.sysadmin.tomsk.ru/index.php?showtopic=96 (http://www.sysadmin.tomsk.ru/index.php?showtopic=96) как-то сам собой затих. (После того как все высказались по второму кругу ;))
И вот новая тем для холивара, теперь уже на почве кодировок. :angry:
[snapback]830[/snapback]
Это разве флейм ...
А UTF это что ни говори шаг вперед и шаг к примирению (разных систем). Причем гдето читал, у англоязычных разработчиков вызывает недоумение, что те, из-за кого всю эту байду с внедрением юникода и заварили не особо торопятся его внедрять ;)
Title: Кодировка KOI8
Post by: demiurg on February 03, 2005, 13:26:56
Quote
Это разве флейм ...
А UTF это что ни говори шаг вперед и шаг к примирению (разных систем). Причем гдето читал, у англоязычных разработчиков вызывает недоумение, что те, из-за кого всю эту байду с внедрением юникода и заварили не особо торопятся его внедрять ;)
[snapback]832[/snapback]
Да если все было бы так просто, то я за UTF-8. Но при переходе на UTF-8 вылезает такая куча проблем, что лучше уж оставаться на koi8-r.
Для перехода на UTF нужно чтобы все ПО могло с этой кодировкой работать, и в этом отношении Винда "не впереди планеты всей".

Для примера -- я попытался использовать UTF-8 под виндой при работе с M$XML....  работать с этими файлами под виндой не удобно (элементарное исправление двух слов в текстовом редакторе) ... в итоге вернулся к win1251.

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

Резюме. UTF -- это хорошо, но еще рано.
Title: Кодировка KOI8
Post by: Egor on February 03, 2005, 14:08:03
Quote
Винда "не впереди планеты всей".
Windows NT, начиная с NT4, работает на Unicode. Все поддерживающие Unicode программы win32 не испытывают проблем с кодировками.

Quote
... работать с этими файлами под виндой не удобно (элементарное исправление двух слов в текстовом редакторе) ...
Поставляющийся с Windows 2000 текстовый редактор "Блокнот" превосходно работает и с UTF-8 и с Unicode. Что "не удобно" -- не понятно.

Quote
Резюме. UTF -- это хорошо, но еще рано.
Не только "переходный" UTF-8, но и Unicode (UCS) уже давно и успешно используются.
Title: Кодировка KOI8
Post by: alexi on February 03, 2005, 14:49:25
Quote
Для перехода на UTF нужно чтобы все ПО могло с этой кодировкой работать, и в этом отношении Винда "не впереди планеты всей".

[snapback]835[/snapback]

Скопировал с сайта www.unicode.org

Unicode Enabled Products

Operating Systems

    * Apple Mac OS 9.2, Mac OS X 10.1, Mac OS X Server, ATSUI
    * Bell Labs Plan 9
    * Compaq's Tru64 UNIX, Open VMS
    * GNU/Linux with glibc 2.2.2 or newer - FAQ support
    * IBM AIX, AS/400, OS/2
    * Inferno by Vita Nuova
    * Java platform New
    * Microsoft Windows CE, Windows NT, Windows 2000, and Windows XP
    * SCO UnixWare 7.1.0
    * Sun Solaris
    * Symbian Platform


Как видите винда присутствует в чистом виде.
Там еще и про шрифты написано в частности:

#  TrueType and Open Type font specification
(including Apple Advanced Typography specifications)
# UniMath
An OpenType font which contains all of the TeX, LaTeX, and AMS TeX symbols, as well as hundreds of other symbols from the Unicode ranges that cover mathematical operators, arrows, and technical symbols.

А вообщето я немного програмлю под винду. Так вот там по умолчанию все стоит в уникоде. Чтобы написать прогу без поддержки этого самого уникода надо постараться.

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


Кстати, если компьютер включен в сеть с виндовозными машинами, а не стоит отдельно, разве половина служб (а то и все) на нем не работают с win1251?

Title: Кодировка KOI8
Post by: demiurg on February 03, 2005, 15:36:31
Quote
Как видите винда присутствует в чистом виде.

А вообщето я немного програмлю под винду. Так вот там по умолчанию все стоит в уникоде. Чтобы написать прогу без поддержки этого самого уникода надо постараться.
Кстати, если компьютер включен в сеть с виндовозными машинами, а не стоит отдельно, разве половина служб (а то и все) на нем не работают с win1251?
[snapback]840[/snapback]
В том-то и дело что с win1251, а уникод здесь причем. Что еще печальнее, так это
client code page = 866 в самбе. Т.к. этот протокол до сих пор пользует 866.
В общем-то свое мнение я высказал... Я еще немного подожду, пока дествительно подавляющее большинство приложение не будут работать с уникодом нормально.
Title: Кодировка KOI8
Post by: Terminator on February 03, 2005, 16:59:11
Quote
В том-то и дело что с win1251, а уникод здесь причем. Что еще печальнее, так это
client code page = 866 в самбе. Т.к. этот протокол до сих пор пользует 866.
В общем-то свое мнение я высказал... Я еще немного подожду, пока дествительно подавляющее большинство приложение не будут работать с уникодом нормально.
[snapback]841[/snapback]
M$ придумали новый протокол, CIFS называется. Все винды начиная с w2k по нему общаются. Там всё в unicode.
samba3 тоже его умеет.
Title: Кодировка KOI8
Post by: Egor on February 03, 2005, 17:00:02
Quote
...Я еще немного подожду, пока дествительно подавляющее большинство приложение не будут работать с уникодом нормально.
Не стоит также забывать о проблеме курицы/яйца: если все будут ждать, то в Unicode не будет потребности, если не будет потребности, то разработчики откажутся от поддержки Unicode, если разработчики откажутся от поддержки Unicode, то пользователи не будут использовать Unicode.

Предлагаемый автором этой темы вариант "все бросить и начать использовать Unicode" однозначно не является разумным решением.
Как обычно, правильным порядком перехода от используемых стандартов к новым является выбор в пользу последних при развертывании новых систем, и то если все остальные условия равны, и не накладываются ограничения совместимости. Вполне очевидно, что переход осуществляется постепенно, безо всяких революций "давайте откажемся".
Title: Кодировка KOI8
Post by: Victor Snezhko on February 04, 2005, 03:28:18
Quote
Поставляющийся с Windows 2000 текстовый редактор "Блокнот" превосходно работает и с UTF-8 и с Unicode. Что "не удобно" -- не понятно.
[snapback]838[/snapback]

Как непонятно? блокнот - это удобно?? :)
не говоря уже о том, что он концы строк 0x0A не воспринимает...

P.S.: с другой стороны, под винду можно собрать емакс, достаточно Visual C и её nmake :)
Title: Кодировка KOI8
Post by: alexi on February 04, 2005, 09:20:31
Quote
Как обычно, правильным порядком перехода от используемых стандартов к новым является выбор в пользу последних при развертывании новых систем, и то если все остальные условия равны, и не накладываются ограничения совместимости. Вполне очевидно, что переход осуществляется постепенно, безо всяких революций "давайте откажемся".
[snapback]843[/snapback]

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

А отказываться от старой КОИ в раз я не советовал. Я просто предлагаю выработать какое-то решение позволяющее отказаться от этой кодировки постепенно. И рекомендовать его для разработчиков разного рода русификаторов и дистрибутивов.
Например, можно просто сказать, что использование кодировки КОИ8 признано морально устаревшим и не рекомендуется к использованию. Вместо нее применять, например, уникод.

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

А то сейчас даже кде и гном по разному русифицированны.
     

   
Title: Кодировка KOI8
Post by: Dimmus on February 04, 2005, 09:28:06
блокнот там самое что есть лучшее, на UNIX - vim и mcedit 8)
Title: Кодировка KOI8
Post by: Egor on February 04, 2005, 10:26:32
Quote
Как непонятно? блокнот - это удобно?? :)
Чтобы исправить два слова ("элементарное исправление двух слов в текстовом редакторе") - да, вполне удобный.

Quote
не говоря уже о том, что он концы строк 0x0A не воспринимает...
Во-первых, признаком конца строки не только в Windows является сочетание 0x0d+0x0a (CR+LF), а не 0x0a. Это оптимизация Unix - использовать только один байт вместо положенных двух.
Во-вторых, если возникла необходимость править такие "оптимизированные" файлы в Windows - существует Wordpad.
Title: Кодировка KOI8
Post by: demiurg on February 04, 2005, 13:43:11
Quote
Чтобы исправить два слова ("элементарное исправление двух слов в текстовом редакторе") - да, вполне удобный.

Во-первых, признаком конца строки не только в Windows является сочетание 0x0d+0x0a (CR+LF), а не 0x0a. Это оптимизация Unix - использовать только один байт вместо положенных двух.
Во-вторых, если возникла необходимость править такие "оптимизированные" файлы в Windows - существует Wordpad.
[snapback]855[/snapback]
Э.... а может это придумка Билли использовать два символа для обозначения конца строки. Unix, то по старее винды будет.

А я даже под виндой gvim пользую. Так что проблем с такой оптимизацией у меня вообще нет. Vim же позволяет сохранять файлы и в том и в другом виде
Title: Кодировка KOI8
Post by: Egor on February 04, 2005, 15:40:20
Quote
Э.... а может это придумка Билли использовать два символа для обозначения конца строки.
Нет, конечно.
http://www.ietf.org/rfc/rfc0020.txt (http://www.ietf.org/rfc/rfc0020.txt)
Quote
RFC 20            ASCII format for Network Interchange      October 1969


      LF (Line Feed): A format effector which controls the movement of
   the printing position to the next printing line.  (Applicable also to
   display devices.) Where appropriate, this character may have the
   meaning "New Line" (NL), a format effector which controls the
   movement of the printing point to the first printing position on the
   next printing line.  [span style=\'font-size:12pt;line-height:100%\']Use of this convention requires agreement
   between sender and recipient of data.[/span]

   ...
      CR (Carriage Return): A format effector which controls the
   movement of the printing position to the first printing position on
   the same printing line.  (Applicable also to display devices.)
Как видно из цитаты, управляющий символ LF служит для смещения места печати вниз на одну строчку, а CR служит для перемещения на начало строки. Вместе CRLF как раз и дает NL (New Line, новая строка), означающее смещение вниз на одну строку и перемещение на начало строки.
LF также может сам по себе означать NL, только если это было заранее оговорено, но это не является стандартным значением LF.
Получается, что Windows следует RFC#20, а Unix нет.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 05, 2005, 13:11:28
Quote
Получается, что Windows следует RFC#20, а Unix нет.
[snapback]859[/snapback]

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

P.S.: для редактирования конфигов он, может быть, и был бы хоть как-нибудь применим, если бы в нём был инкрементный поиск.
Title: Кодировка KOI8
Post by: Syncro on February 07, 2005, 20:34:10
самое интересное то, что обычный UTF-8 это не предел мечтаний и надежд:)) это переходый этап переходного этапа:). Щастье наступит никак не раньше тотального перехода на UCS4 (32 бита на символ). Некоторый софт уже использует его как внутреннюю кодировку, так что это все вопрос времени. А по поводу совместимости, ну вобщем при программировании с использовании качественных современных инстументов и последующем их использовании проблем не возникает, а недостойные умрут естественным путем:))
Хотя письма от пользователей аутлука, особенно злоупотребляющих творчеством это действительно ужас, но не столько из-за кодировки, а из-за собственного представления о стандартах. Вот с этим надо действительно бороться
Title: Кодировка KOI8
Post by: Victor Snezhko on February 07, 2005, 21:55:19
Quote
самое интересное то, что обычный UTF-8 это не предел мечтаний и надежд:)) это переходый этап переходного этапа:). Щастье наступит никак не раньше тотального перехода на UCS4 (32 бита на символ).
[snapback]890[/snapback]

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

я вот не понимаю, зачем нужен UCS4 (ака UTF-32 :)), когда есть UTF-8... AFAIK, нет в UCS4 таких символов, которые нельзя было бы представить в UTF-8.
Title: Кодировка KOI8
Post by: Unit on February 08, 2005, 02:14:09
Quote
Хотя письма от пользователей аутлука, особенно злоупотребляющих творчеством это действительно ужас, но не столько из-за кодировки, а из-за собственного представления о стандартах. Вот с этим надо действительно бороться
Ага, мало того, что MIME любят, дак ещё и HTML по умолчанию  :angry:
Title: Кодировка KOI8
Post by: alexi on February 08, 2005, 10:09:40
Quote
Гм... UTF-8 неплохо экономит память.
а если ещё и не использовать произвольный доступ к строкам (который всё равно есть зло), то больше него ничего и не надо.

я вот не понимаю, зачем нужен UCS4 (ака UTF-32 :)), когда есть UTF-8... AFAIK, нет в UCS4 таких символов, которые нельзя было бы представить в UTF-8.
[snapback]891[/snapback]

Я так понял из описания стандарта что UTF-16 исторически первый стандарт от которого предлагают отказаться.
UTF-8 описывает кодировку всех современных письменных языков, а UTF-32 кроме современных языков включает в себя и письмо на мертвых или искуственных языках.
Кроме того UTF-8 совместим со всеми и вся и рекомендуется для использования в интернете.
Я думаю что для русского языка и в сложившихся условиях это хороший выход.
Title: Кодировка KOI8
Post by: Syncro on February 09, 2005, 11:38:13
Quote
Ага, мало того, что MIME любят, дак ещё и HTML по умолчанию  :angry:
[snapback]894[/snapback]
да ладно еще если бы там стандартный хтмл был ... аутлуковское мракобесие которое мне тут недавно прислали кхтмлный движок Kmail'a показать нормльно не смог, а он местами правильней мозиллы рендерит.
// открыл опенофис и экспортировал документ в HTML, получилось:
Quote
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
   <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="text/html; charset=windows-1251">
   <TITLE></TITLE>
   <META NAME="GENERATOR" CONTENT="OpenOffice.org 1.1.1  (Win32)">
   <META NAME="CREATED" CONTENT="20050209;11325457">
   <META NAME="CHANGED" CONTENT="20050209;11330935">
   <STYLE>
   <!--
  @page { size: 21cm 29.7cm; margin: 2cm }
  P { margin-bottom: 0.21cm }
   -->
   </STYLE>
</HEAD>
<BODY LANG="ru-RU" DIR="LTR">
<P STYLE="margin-bottom: 0cm">uyiotyiugjhi</P>
</BODY>
</HTML>

вот это я называю следованием стандартам, попробуйте тоже самое сделать в ворде:))
Title: Кодировка KOI8
Post by: Victor Snezhko on February 09, 2005, 20:40:53
Quote
Я так понял из описания стандарта что UTF-16 исторически первый стандарт от которого предлагают отказаться.
UTF-8 описывает кодировку всех современных письменных языков, а UTF-32 кроме современных языков включает в себя и письмо на мертвых или искуственных языках.
[snapback]895[/snapback]

неа, в UTF-8 представим весь юникод, включая все эти мёртвые языки. просто для US-ASCII место расходуется байт на символ, для более редких символов - 2 байта, и так до 6 байт для совсем извращенских языков.
а UTF-32, кстати, насколько я вычитал в кембриджском UTF-8 FAQ, не весь юникодный набор символов может представить. есть там ограничения почему-то...

Quote
Кроме того UTF-8 совместим со всеми и вся и рекомендуется для использования в интернете.
[snapback]895[/snapback]
некоторые просто работают со строками через задницу - обращаются к символам строки по индексу, для таких программ UTF-8 может привести к нефиговым потерям производительности. потому что разное количество байт на символ тратится в зависимости от символа.
не так с UTF-16/UTF-32: в них всегда 2/4 байта на символ соответственно. поэтому проще. с другой стороны, не все UTF16/UTF32-строки можно запихать в сишную строку обычную.
Title: Кодировка KOI8
Post by: Dimmus on February 09, 2005, 21:50:45
в итоге вывод один, что пока весь софт не будет нормально работать с utf-8, русские так и останутся на koi8-r ;)
Title: Кодировка KOI8
Post by: alexi on February 10, 2005, 09:12:33
Quote
неа, в UTF-8 представим весь юникод, включая все эти мёртвые языки. просто для US-ASCII место расходуется байт на символ, для более редких символов - 2 байта, и так до 6 байт для совсем извращенских языков.
а UTF-32, кстати, насколько я вычитал в кембриджском UTF-8 FAQ, не весь юникодный набор символов может представить. есть там ограничения почему-то...
[snapback]911[/snapback]
Это условия кодировки. В UTF-8 и UTF-16   тоже есть пробелы которые ничего не кодируют.
И еще много сделано для совместимости с UTF-8 Все что можно представить в нем, в нем и должно быть представлено.

Quote
некоторые просто работают со строками через задницу - обращаются к символам строки по индексу, для таких программ UTF-8 может привести к нефиговым потерям производительности. потому что разное количество байт на символ тратится в зависимости от символа.
не так с UTF-16/UTF-32: в них всегда 2/4 байта на символ соответственно. поэтому проще. с другой стороны, не все UTF16/UTF32-строки можно запихать в сишную строку обычную.
[snapback]911[/snapback]
Это привдет к тому, что в языке программирования, например в томже с, появится номальный класс, позволяющий по человечески работать со строками. А не так как это сделано сейчас. При правильной реализации, потерь производительности не будет. А все что нельзя запихать в строку в стандарте заране оговорено. И потом если линух уже может работать с уникодом, значит проблемы так или иначе решили. Просто надо документацию читать, и использовать предлагаемые возможности, а не по старинке.
Кстати, прекрасный повод к совершенствованию.

Title: Кодировка KOI8
Post by: alexi on February 10, 2005, 09:20:40
Quote
в итоге вывод один, что пока весь софт не будет нормально работать с utf-8, русские так и останутся на koi8-r ;)
[snapback]912[/snapback]

Объясните мне. Чем KOI8-R лучше тойже win1251?

Мне кажется что использование виндовозной кодировки лучше как минимум по двум причинам:
1. Она упорядочена по алфавиту. По русскому алфавиту.
2. Линух использующий эту кодировку прозрачно и без проблем работает в виндовозных сетях. Нет проблем с переносом файлов из системы в систему и русскими названиями техже файлов.

Title: Кодировка KOI8
Post by: Unit on February 10, 2005, 10:49:47
КОИ-8 была раньше придумана, вообще-то.

А то, что навязали винды, считать как за "де факто", простите, смешно.
Title: Кодировка KOI8
Post by: Egor on February 10, 2005, 13:09:01
Quote
КОИ-8 была раньше придумана, вообще-то.

А то, что навязали винды, считать как за "де факто", простите, смешно.
Аргумент "раньше придумана" не является значимым, поскольку преимущества ранее придуманных над позднее придуманными не очевидны.
Ничего смешного в том, что некоторая операционная система управляет подавляющим большинством домашних и офисных компьютеров во всем мире, и базовой кодировкой для русского языка в ней считается Windows-1251. Вот и де-факто, получается.
Title: Кодировка KOI8
Post by: Unit on February 10, 2005, 16:33:17
Ладно, спорить не буду. Давным-давно я негативно к КОИ относился. Потом начал знакомиться с unix-миром и понял, что там оно всё ещё да что-то значит.

Но, боюсь, в ближайшее время маловероятно, что она исчезнет. Если не изменяет память то по умолчанию в ОЕ именно кои8 в откправке писем стоит, а не ср1251.
Title: Кодировка KOI8
Post by: stranger on February 10, 2005, 16:41:35
Quote
Аргумент "раньше придумана" не является значимым, поскольку преимущества ранее придуманных над позднее придуманными не очевидны.
Ничего смешного в том, что некоторая операционная система управляет подавляющим большинством домашних и офисных компьютеров во всем мире, и базовой кодировкой для русского языка в ней считается Windows-1251. Вот и де-факто, получается.
[snapback]916[/snapback]
Ладно другой аргумент ... KOI8-R считалась и считается стандартом для юникс систем и передачи данных в Интернет.

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

Я например, спокойно работаю с файлами расположенными на линухе в винде и меня это не беспокоит. Как по самбе, так и по фтп.
Title: Кодировка KOI8
Post by: stranger on February 10, 2005, 16:47:25
Quote
Объясните мне. Чем KOI8-R лучше тойже win1251?

Мне кажется что использование виндовозной кодировки лучше как минимум по двум причинам:
1. Она упорядочена по алфавиту. По русскому алфавиту.
2. Линух использующий эту кодировку прозрачно и без проблем работает в виндовозных сетях. Нет проблем с переносом файлов из системы в систему и русскими названиями техже файлов.
[snapback]914[/snapback]
Упорядочена как? По алфавиту или по частоте использования?
Если первое, то никакой выгоды не вижу...

По поводу  прозрачности в виндовых сетях - так и так все нормально работает - самба на лету все переводит.  И проблем с русскими названиями тоже следовательно нет.
Title: Кодировка KOI8
Post by: alexi on February 10, 2005, 17:02:25
Quote
Упорядочена как? По алфавиту или по частоте использования?
Если первое, то никакой выгоды не вижу...
[snapback]920[/snapback]

По алфавиту.
Выгода первая
Сортировка по алфавиту вверх или вниз выполняется простым сравнением.
(Меньше-больше) Соответственно скорость сортировки недостижимая для кои8
Выгода вторая.
Чтобы в тексте сделать все буквы большими или наоборот маленькими надо просто прибавить или отнять 33 из кода буквы. Скорость опять же для кои8 недостижимая.

Помоему этого достаточно.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 10, 2005, 23:46:37
Quote
Это условия кодировки. В UTF-8 и UTF-16   тоже есть пробелы которые ничего не кодируют.
И еще много сделано для совместимости с UTF-8
[snapback]913[/snapback]

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

Quote
Это привдет к тому, что в языке программирования, например в томже с, появится номальный класс, позволяющий по человечески работать со строками. А не так как это сделано сейчас. При правильной реализации, потерь производительности не будет.
[snapback]913[/snapback]
гм... это как так? на utf-8. даже в новейшем сишарпе оставили доступ к символу строки по индексу... на чтение. на utf-8 его нельзя реализовать за константное время.
убрать произвольный доступ вообще? они и более слабые решения не могут в стандарт пропихнуть... не будет такого, короче.

кстати, кто-нибудь знает, где взять стандарт С++ от 2003 года? там куча багов пофиксено, и найти не могу его никак... а то они денег просят за него. безобразие.

Quote
Объясните мне. Чем KOI8-R лучше тойже win1251?

Мне кажется что использование виндовозной кодировки лучше как минимум по двум причинам:
1. Она упорядочена по алфавиту. По русскому алфавиту.
[snapback]914[/snapback]

спорное преимущество.

Quote
2. Линух использующий эту кодировку прозрачно и без проблем работает в виндовозных сетях. Нет проблем с переносом файлов из системы в систему и русскими названиями техже файлов.
[snapback]914[/snapback]
линух? использующий винду? нет проблем с переносом файлов из системы в систему?
не смешите мои тапочки :)
даже винда не может перенести файлы на другую винду, например, по фтп!
чего говорить о линухе... он этот маразм исправить ну никак не может... при всём желании.
(хинт: в 1251 буква 'я' имеет код 0xFF, который съедается ftp-серверами (или должен съедаться), потому что служебный.)

Quote
Аргумент "раньше придумана" не является значимым, поскольку преимущества ранее придуманных над позднее придуманными не очевидны.
Ничего смешного в том, что некоторая операционная система управляет подавляющим большинством домашних и офисных компьютеров во всем мире, и базовой кодировкой для русского языка в ней считается Windows-1251. Вот и де-факто, получается.
[snapback]916[/snapback]
ещё раз. а для консольных приложений - 866. это что за ботва? предлагаем от неё отказаться?
агащазблин. используем, например, какие-нибудь общие модули в двух программах, обе, допустим, в 1251. пишем, например, в IDE. в гуе - нормально. в консоли же - кракозябры. из одного и того же модуля. переводим в 866 проект - в гуе кракозябры. какого хрена?
вот уж блин за...сь продуманное отношение. стратегия, мать её.
прикручивать костыли типа iconv не предлагать. хотя можно. но идеологически неправильно.

Quote
Если не изменяет память то по умолчанию в ОЕ именно кои8 в откправке писем стоит, а не ср1251.
[snapback]918[/snapback]

не изменяет. в это в MS Outlook Express!

Quote
По поводу  прозрачности в виндовых сетях - так и так все нормально работает - самба на лету все переводит.  И проблем с русскими названиями тоже следовательно нет.
[snapback]920[/snapback]
угу. в отличие от 1251. см. выше про фтп.

Quote
По алфавиту.
Выгода первая
Сортировка по алфавиту вверх или вниз выполняется простым сравнением.
(Меньше-больше) Соответственно скорость сортировки недостижимая для кои8
[snapback]921[/snapback]
и Вам такой "сортировки" достаточно?
нда... и зачем народ придумывает всяческие collationы и прочее в этом роде. есть же гениальная мысль использовать 1251 и сортировать там по кодам символов!

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

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

Quote
Выгода вторая.
Чтобы в тексте сделать все буквы большими или наоборот маленькими надо просто прибавить или отнять 33 из кода буквы. Скорость опять же для кои8 недостижимая.
[snapback]921[/snapback]

Мсье извращенец?
мало того, что так завязываться на кодировку - вредительство, за которое расстреливать - это слишком мягкое наказание, так ещё и утверждение о "недостижимости" скорости для кои8 - враньё.

вот :)
Title: Кодировка KOI8
Post by: alexi on February 11, 2005, 10:19:35
Quote
гм...неужто  мой склероз мне изменяет... faq читал как раз перед тем, как ответить. и там английским по белому было написано, что как раз все символы. иначе зачем там символы, для которых надо 6 байт.
[snapback]933[/snapback]
Это в стандарте UTF8 длина символа может быть хоть 100 байт. В UTF32 длина символа жестко задана 4 байтами. Соответсвенно он не может представить те символы которые может представить UTF8.

Quote
гм... это как так? на utf-8. даже в новейшем сишарпе оставили доступ к символу строки по индексу... на чтение. на utf-8 его нельзя реализовать за константное время.
убрать произвольный доступ вообще? они и более слабые решения не могут в стандарт пропихнуть... не будет такого, короче.
[snapback]933[/snapback]

Произвольный доступ на чтение есть свойства внутренней реализации класса.
Разработчики просто оставили его доступным для ужеров этого класса. Авось пригодится. Главное это то, что доступ на запись ограничен. А читать строку вы можете как хотите.

Quote
кстати, кто-нибудь знает, где взять стандарт С++ от 2003 года? там куча багов пофиксено, и найти не могу его никак... а то они денег просят за него. безобразие.
[snapback]933[/snapback]

Нмм... Какой смысл читать стандарт на язык программирования. Читать нужно мануал на компилятор которым пользуетесь. А его описание обычно идет в поставке с компилятором. Или Вы разработчик компилятора?

спорное преимущество.
линух? использующий винду? нет проблем с переносом файлов из системы в систему?
не смешите мои тапочки :)

Quote
даже винда не может перенести файлы на другую винду, например, по фтп!
чего говорить о линухе... он этот маразм исправить ну никак не может... при всём желании.
(хинт: в 1251 буква 'я' имеет код 0xFF, который съедается ftp-серверами (или должен съедаться), потому что служебный.)
[snapback]933[/snapback]
Я не говорю что виндовозная кодировка такая хорошая и панацея. Я лишь предлагаю обсудить пути решения возникшей ситуации когда для русского я зыка существует 5 кодировок из которых только одна (виндовозная) используется на 99% компьютеров. И разумным выходом было бы использование уникода.
Во первых стандарт к которому рано или поздно перейдет таже микрософт, во вторых в ней учтен опыт предыдущих багов.

Quote
ещё раз. а для консольных приложений - 866. это что за ботва? предлагаем от неё отказаться?
[snapback]933[/snapback]

Микросовт уже лет этак 5 назад сказала, что отказывается поддерживать в своих системах консольные приложения. И если вы их используете это целиком ваши проблемы.  Консоль оставлена для системных нужд.  А все системные нужды обслуживаются на английском. Простой юзер туда не полезет, а админ знает английский.
К тому же 866 кодировка ИБМовская а не мирософтовская.

Quote
и Вам такой "сортировки" достаточно?
нда... и зачем народ придумывает всяческие collationы и прочее в этом роде. есть же гениальная мысль использовать 1251 и сортировать там по кодам символов!
[snapback]933[/snapback]
Согласен. Это не самое хорошее решение. Однако процессор все равно сравнивает циферки, а не буковки. Если кодовая таблица отсортирована по алфавиту, она самодостаточна. Иначе вы храните еще один массив в котором хранится использемая кодовая таблица отсортированная по алфавиту. Для кои8 это нужно. Для уникода нет.
Quote
Мсье извращенец?
[snapback]933[/snapback]

Месье пишет программы работающие в режиме жесткого реального времени в условиях ограниченных ресурсов.
Существующий сейчас реальный и быстрый выход - отказаться от использования русского языка в таких системах.
Только вот у него есть свора бухгалтеров и других менегеров которые в англиской раскладке клавиатуры печатают по одному символу в 3 минуты.
Title: Кодировка KOI8
Post by: SinClaus on February 11, 2005, 13:39:43
Однако мосье что-то путает. Жесткое реальное время - это когда детерминированное время реакции системы исчисляется в микросекундах. И причем здесь тогда бухгалтера?
И что - бухгалтера и прочие манагеры у Вас сидят под Линуксом? Тогда две таблички по 256 байт более чем достаточно для любой перекодировки KOI8, любых ограниченных ресурсов хватит, даже на ХТ-шке.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 11, 2005, 14:18:59
Quote
Это в стандарте UTF8 длина символа может быть хоть 100 байт. В UTF32 длина символа жестко задана 4 байтами. Соответсвенно он не может представить те символы которые может представить UTF8.
[snapback]937[/snapback]
ОК. я неправильно прочитал исходную фразу.

Quote
Произвольный доступ на чтение есть свойства внутренней реализации класса.
Разработчики просто оставили его доступным для ужеров этого класса. Авось пригодится. Главное это то, что доступ на запись ограничен. А читать строку вы можете как хотите.
[snapback]937[/snapback]
так тот факт, что на разных кодировках одни и те же операции имеют разную временнУю сложность - это настоящая проблема.
и если программа работает со строками в стиле char a = s[12345], то у неё будут большие проблемы с переносимостью на utf-8. и то, что доступ на запись ограничен, при этом совершенно не принципиально.

Quote
Нмм... Какой смысл читать стандарт на язык программирования. Читать нужно мануал на компилятор которым пользуетесь. А его описание обычно идет в поставке с компилятором. Или Вы разработчик компилятора?
[snapback]937[/snapback]
гм... а переносимость? иногда она нафиг не нужна, но бывает полезна.
кроме того, стандарт именно C++ - весьма неплохо написан.
я когда плотно писал под STL, писал как раз со стандартом под рукой, и не пожалел, что использовал его (раньше смотрел в MSDN, получалось хуже).
и вообще, в мануалах на компиляторы многие тонкости не описаны. а в C++ этих тонкостей - как грязи :)

Quote
спорное преимущество.
линух? использующий винду? нет проблем с переносом файлов из системы в систему?
не смешите мои тапочки :)
[snapback]937[/snapback]
это, между прочим, я писал :)
там ещё дальше самое главное было, про фтп.

Quote
Я не говорю что виндовозная кодировка такая хорошая и панацея. Я лишь предлагаю обсудить пути решения возникшей ситуации когда для русского я зыка существует 5 кодировок из которых только одна (виндовозная) используется на 99% компьютеров. И разумным выходом было бы использование уникода.
[snapback]937[/snapback]
ничего вообще не имею против уникода.
просто кучу программ ещё надо допинывать и допинывать.

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

Quote
Во первых стандарт к которому рано или поздно перейдет таже микрософт, во вторых в ней учтен опыт предыдущих багов.
Микросовт уже лет этак 5 назад сказала, что отказывается поддерживать в своих системах консольные приложения.
[snapback]937[/snapback]
не знаю. может, конечно, это и так. не слышал. но в таком случае на хрена они сами добавили в xp такую кучу консольных приложений, что просто ваще... сетевые интерфейсы теперь можно из батников поднимать, как в любом юниксе. кучу всего другого делать. более того, в недрах их хелпа это подробно описано.

Quote
И если вы их используете это целиком ваши проблемы.  Консоль оставлена для системных нужд.  А все системные нужды обслуживаются на английском. Простой юзер туда не полезет, а админ знает английский.
К тому же 866 кодировка ИБМовская а не мирософтовская.
[snapback]937[/snapback]

какая разница чья? дело-то в том, что она до сих пор используется в микрософтовских же продуктах.

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

кроме того, консольными приложениями гораздо удобнее управлять, чем гуёвыми. их можно запускать из батника, из планировщика задач, откуда угодно. чтобы такой же управляемости добиться от гуя, нужно воротить COM-интерфейсы и пользоваться чем-нибудь вроде вижуал бейсика. приятное занятие, не правда ли? ладно ещё вижуал бейсик, его хоть заменить чем-то можно, но писать COM-серверы - тоже удовольствие ещё то :)
несравнимое с написанием простенького разбора командной строки.

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

Quote
Согласен. Это не самое хорошее решение. Однако процессор все равно сравнивает циферки, а не буковки. Если кодовая таблица отсортирована по алфавиту, она самодостаточна. Иначе вы храните еще один массив в котором хранится использемая кодовая таблица отсортированная по алфавиту. Для кои8 это нужно. Для уникода нет.
[snapback]937[/snapback]
юникод сам по себе ничем не плох. ещё программ только мало. речь идёт о том, что если не завязываться на юникод, один хрен нельзя полагаться на то, что будет одна кодировка (почти всегда, кроме ограниченного круга задач). потому что при расширении системы запросто можно натолкнуться на трудно преодолеваемые грабли.

Quote
Месье пишет программы работающие в режиме жесткого реального времени в условиях ограниченных ресурсов.
Существующий сейчас реальный и быстрый выход - отказаться от использования русского языка в таких системах.
Только вот у него есть свора бухгалтеров и других менегеров которые в англиской раскладке клавиатуры печатают по одному символу в 3 минуты.
[snapback]937[/snapback]
ой... прямо таки жёсткого? ещё и на винде? :) (сужу по тому, что предлагается 1251, в этом могу быть неправ).
и вообще, интересная связка: жесткое реальное время + бухгалтеры.


P.S.: эх, ... неудобно всё-таки в форуме по сравнению с NNTP-серверами... не цитируются цитаты, из-за этого контекст теряется. не вставлять же руками...
Title: Кодировка KOI8
Post by: alexi on February 11, 2005, 14:21:25
Quote
Однако мосье что-то путает. Жесткое реальное время - это когда детерминированное время реакции системы исчисляется в микросекундах.
[snapback]939[/snapback]

Жесткое реальное время это когда реакция системы достаточно быстра для обработки запросов. При этом не должно возникать ситуаций когда запрос может быть потерян или не хватит времени на его обработку.
Это время может исчисляться секундами.

Quote
И причем здесь тогда бухгалтера?
И что - бухгалтера и прочие манагеры у Вас сидят под Линуксом? Тогда две таблички по 256 байт более чем достаточно для любой перекодировки KOI8, любых ограниченных ресурсов хватит, даже на ХТ-шке.
[snapback]939[/snapback]

Бухгалтера сидят под виндой. Но их я привел для примера. В целом при создании интерфейса с пользователем необходимо использовать русский язык.  Или создавать отчеты о неполадках на томже русском языке (ну это может делать и система повыше и помощнее). Но интерфейс все равно должен быть русский. Вот тут и вылазеет, что линух русифицирован через кои8, а на верху система работает с виндой и в другой кодировке.
А теперь представьте себе, например, киоск по продаже билетов. Центральный сервер под  MSSQL, рабочие места под виндой. Служба расписаний под виндой. все это под виндой потому, что бухгалтерия работает в 1С.  Потомучто программисты работают в Делфи, и нормального юникса в глаза не видели или не умеют писать для него программы.
А вот киоск работает на 486 проце. Но он должен общаться со всей сетью в реале и говорить с пользователем по русски.
Это пример когда русский язык критичен, и критична схема кодирования.
При наличии единого стандарта на кодировку проблем не будет. А сейчас везде  эту проблему надо решать. Везде использовать перекодировку.

----------------------------
Мы живем в мире, который вокруг нас.
Давайте попробуем сделать его чуточку лучше.
Title: Кодировка KOI8
Post by: mars on February 11, 2005, 15:15:05
Насколько я помню, кои8 создавалась с расчетом на то, что не все программы поддерживали 8-битный алфавит (некоторые тупо записывали в 8-ой бит 0), а если в кои8 поставить 8-ой бит в 0, то получается нормальный транслит, все можно и так прочитать
Title: Кодировка KOI8
Post by: SinClaus on February 11, 2005, 15:43:10
Quote
А вот киоск работает на 486 проце. Но он должен общаться со всей сетью в реале и говорить с пользователем по русски.
Ну зачем же из-за киоска затевать передел мира? Такой флейм породили!
Есть два решения проблемы:
1. Киоски и даже банкоматы работают на NT4 без проблем.
2. Генерите себе для киоска Линух (если уж так хочется) хоть с китайским языком в ЛЮБОЙ кодировке - благо это крайне просто.

Но причем тут все сообщество линуксоидов?
Кстати, если 486 машина - это ограниченные ресурсы, то как назвать технологические машины на 8086, которые весьма успешно управляли процессами в реальном времени!?
Title: Кодировка KOI8
Post by: Egor on February 11, 2005, 18:54:54
Quote
(хинт: в 1251 буква 'я' имеет код 0xFF, который съедается ftp-серверами (или должен съедаться), потому что служебный.)
Разве он служебный для протокола ftp? Если нет, то сервер его должен передать. Не в обиду перефразирую "все вменяемые ftp-серверы давно научились корректно обрабатывать эту ситуацию согласно существующим стандартам де-факто".

Quote
ещё раз. а для консольных приложений - 866. это что за ботва?...
Это, вероятнее всего, недальновидная стратегия сохранения совместимости со старыми msdos приложениями.
Для изменения кодовой страницы используется команда chcp.
Затем нужно выбрать шрифт TrueType (вместо растрового) для использования cmd.exe: Заголовок окна->свойства->шрифт->Lucida console, например.
Quote
>type 1.txt
юфэр Є√ё ўр фтхёЄш я Є№фхё Є юфшэ
>chcp 1251
Текущая кодовая страница: 1251

>type 1.txt
одна тысяча двести пятьдесят один
Title: Кодировка KOI8
Post by: stranger on February 11, 2005, 19:55:34
Quote
Не в обиду перефразирую "все вменяемые ftp-серверы давно научились корректно обрабатывать эту ситуацию согласно существующим стандартам де-факто".
[snapback]945[/snapback]
В том-то и дело, что не научились, и потом получается, что файлы содержащие "я" получаются изковеркованными.

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

А переходить из-за этого на cp1251 не вижу смысла...
Title: Кодировка KOI8
Post by: stranger on February 11, 2005, 19:57:55
Quote
Насколько я помню, кои8 создавалась с расчетом на то, что не все программы поддерживали 8-битный алфавит (некоторые тупо записывали в 8-ой бит 0), а если в кои8 поставить 8-ой бит в 0, то получается нормальный транслит, все можно и так прочитать
[snapback]943[/snapback]
Именно так он и был разработан... Очень удобно было в свое время, так как не все проги поддерживали 8 бит.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 12, 2005, 11:09:30
Quote
Разве он служебный для протокола ftp? Если нет, то сервер его должен передать. Не в обиду перефразирую "все вменяемые ftp-серверы давно научились корректно обрабатывать эту ситуацию согласно существующим стандартам де-факто".
Это, вероятнее всего, недальновидная стратегия сохранения совместимости со старыми msdos приложениями.
Для изменения кодовой страницы используется команда chcp.
Затем нужно выбрать шрифт TrueType (вместо растрового) для использования cmd.exe: Заголовок окна->свойства->шрифт->Lucida console, например.


>type 1.txt
юфэр Є√ё ўр фтхёЄш я Є№фхё Є юфшэ
>chcp 1251
Текущая кодовая страница: 1251

>type 1.txt
одна тысяча двести пятьдесят один
[snapback]945[/snapback]

а теперь, уважаемая публика, фокус!

> type файл.txt
русские буквы
> chcp 1251
Active code page: 1251
> type файл.txt
The system cannot find the file specified.

это не говоря уже о том, что при этом процедура ввода слова "файл" c клавиатуры превращается в настоящее издевательство.


ну и, чтоб два раза не вставать...
хорошее поведение koi8 при обрезании седьмого бита - это давно не преимущество. хотя и не недостаток. хватает других преимуществ :)
Title: Кодировка KOI8
Post by: mars on February 13, 2005, 17:33:19
что за другие преимущества? если не секрет
а то я давно не слежу за подобными вещами ;)
Title: Кодировка KOI8
Post by: Victor Snezhko on February 13, 2005, 18:17:43
Quote
что за другие преимущества? если не секрет
а то я давно не слежу за подобными вещами ;)
[snapback]954[/snapback]
это общепризнанный стандарт де-факто для электронной почты, например :)
даже в аутлуке по умолчанию.
Title: Кодировка KOI8
Post by: Egor on February 14, 2005, 16:08:25
Quote
а теперь, уважаемая публика, фокус!

> type файл.txt
русские буквы
> chcp 1251
Active code page: 1251
> type файл.txt
The system cannot find the file specified.
...
Не ясно, в чем фокус, конечно...:) У ntfs5, с именами файлов в unicode, не должно возникать подобных проблем с кодировками. Опишите, пожалуйста, шаги и вашу среду.
Quote
это не говоря уже о том, что при этом процедура ввода слова "файл" c клавиатуры превращается в настоящее издевательство.
В чем издевательство-то? Я предупредил о необходимости использования TT-шрифта (растровый "некорректно отображает"), возможно, дополнительно необходимо использовать MUI.
Title: Кодировка KOI8
Post by: Victor Snezhko on February 14, 2005, 23:26:36
Quote
Не ясно, в чем фокус, конечно...:) У ntfs5, с именами файлов в unicode, не должно возникать подобных проблем с кодировками. Опишите, пожалуйста, шаги и вашу среду.
[snapback]972[/snapback]

гм... нда, на FAT32 ломается...
и на шрифте по умолчанию тоже.

неправильно это. ладно ещё FAT32, но то, что шрифт нужно ставить - неудобно. тот, который по умолчанию, хороший :)

Quote
В чем издевательство-то? Я предупредил о необходимости использования TT-шрифта (растровый "некорректно отображает")
[snapback]972[/snapback]
действительно.
Title: Кодировка KOI8
Post by: netme on February 18, 2005, 21:46:57
Интересная битва получается из-за такого мелкой (но основополагающей :) ) вещи как кодировка. Много слов о том что мало программ использующих Unicode and UTF8,16,32. Прошу обратить внимание на топик: автор и предлагает расширить круг таких приложений.
Я так полагаю что основные программы которые должны поддерживать аля уникод - это компилятор вашего языка, и строковая библиотека ОС. А все остальные программы (ничего не поделаешь) используют ее транспоретно, как это происходит когда вы сегодня пишите гуишную, консольную, еще какую-нибудь программу.
У о вопросах быстродействия вам предлагаю не задумываться, так как быстродействие железа не компетенция программистов (в специальных случаях не используют шир.-потреб.)
Title: Кодировка KOI8
Post by: Victor Snezhko on February 19, 2005, 17:22:14
Quote
Интересная битва получается из-за такого мелкой (но основополагающей :) ) вещи как кодировка. Много слов о том что мало программ использующих Unicode and UTF8,16,32. Прошу обратить внимание на топик: автор и предлагает расширить круг таких приложений.
[snapback]1047[/snapback]
а кто будет переписывать все эти программы?

Quote
Я так полагаю что основные программы которые должны поддерживать аля уникод - это компилятор вашего языка, и строковая библиотека ОС. А все остальные программы (ничего не поделаешь) используют ее транспоретно, как это происходит когда вы сегодня пишите гуишную, консольную, еще какую-нибудь программу.
У о вопросах быстродействия вам предлагаю не задумываться, так как быстродействие железа не компетенция программистов (в специальных случаях не используют шир.-потреб.)
[snapback]1047[/snapback]
а причём тут быстродействие железа? речь-то идёт о том, что во многих программах строки рассматриваются как массивы, и обращение идёт по номеру, и в кодировке UTF-8 при этом сложность такого обращения возрастает от константной до линейной, то есть для того, чтобы произвести обращение, надо всю строку просмотреть до этого места.
в этом смысле UTF-8 принципиально отличается от UTF16/UTF32.
но она хоть заставляет писать правильно :)
а во всех остальных кодировках на правильность можно класть.