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

Для справки, я начал работать с компьютерами в начале 2000-х годов в России. Русский язык использует алфавит на основе кириллицы. И что касается языков, отличных от ASCII, все относительно просто: 33 буквы, у каждой есть варианты в верхнем и нижнем регистре, и преобразование верхнего/нижнего регистра обратимо. Так как букв всего 33, вы можете уместить их в 8-битной кодировке. Кроме того, есть еще место для псевдографики.

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

Одна из причин - сложная история Советского Союза и вычислительной техники - он был ​​изолирован от остального мира, и все организации, производящие компьютерное оборудование и программное обеспечение, принадлежали государству, поэтому оно могло навязать им стандарты. После распада СССР рынок был быстро захвачен западным оборудованием и программным обеспечением потому что советскую технику уже никто не производил. Частные софтверные компании тоже сразу начали выпускать ПО для импортных ОС - сначала это был DOS.

Старые советские системы в основном использовали кодировку KOI8-R. KOI расшифровывается как «Код Обмена Информацией», 8 означает 8-битный, а R означает русский (есть еще украинская версия под названием KOI8-U, украинский алфавит отличается от русского). Эта кодировка, мягко говоря, безумна: она была спроектирована так, что удаление 8-го бита оставляет вам несколько читабельную ASCII-транслитерацию русского алфавита, поэтому русские буквы не идут в обычном порядке.

DOS использовал CP866. Это гораздо менее безумно, поддерживается порядок букв и охватывается несколько языков с кириллицей. Что случилось, когда появилась Windows? Microsoft разработала новую кодировку Windows-1251.

Добавила ли она бесшовную перекодировку старых файлов из DOS? Конечно, нет! Русская версия Windows эффективно использовала две разные кодировки: родные части Windows использовали Windows-1251, в то время как подсистема DOS по-прежнему использовала CP866. Если вы набрали свое задание по программированию в Turbo Pascal 5 и писали все комментарии на русском языке, вы не могли открыть его в notepad.exe для печати - комментарии в конечном итоге были бы нечитаемыми.

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

Кроме того, Интернет работает в UNIX-подобных системах. Проприетарное оборудование UNIX (Sun, HP и т. д.) было слишком дорогим для большинства компаний, а быстрый рост Интернета в России совпал с быстрым ростом внедрения программного обеспечения с открытым исходным кодом, поэтому на практике UNIX-подобный означает FreeBSD и Linux. Это означает, что мы можем игнорировать тот факт, что проприетарные системы UNIX использовали ISO 8859-5 - этот факт не повлиял на обычного пользователя. Только варианты кодирования свободных систем и систем с открытым исходным кодом.

FreeBSD и Linux использовали… KOI8-R, советскую кодировку. Основная причина в том, что она использовалась в старых советских UNIX-подобных системах (например, DEMOS, и когда старые настройки были перенесены на новые ОС это был, вероятно, естественный выбор. К тому же KOI8-R был не от Microsoft. Linux давно поддерживает Windows-1251, но я не видел, чтобы кто-нибудь использовал его - по умолчанию был KOI8-R, и все выбирали его (включая меня, хотя я потом перешел на Unicode, как только это стало возможным).

Итак, к концу 90-х годов сложилась ситуация, когда большинство веб-серверов, серверов электронной почты или IRC работали под управлением UNIX-подобных ОС с KOI8-R, в то время как большинство рабочих станций работали под управлением Windows с Windows-1251. Из-за этого путаница с кодированием стала частью повседневной жизни большинства пользователей Интернета.

Люди писали программы для эвристического обнаружения и перекодирования кодировок, такие как "Почтовый декодер" Артемия Лебедева и "Штирлиц" Всеволода Лукьянина.

По иронии судьбы, попытка запустить Штирлиц (или любую другую программу Windows с текстом в Windows-1251) в системе, которая поставляется без поддержки Windows-1251, приводит к той самой проблеме с искаженным текстом, которую она должна была решить. Это не проблема ReactOS - у вас будет такая же проблема в Microsoft Windows, если в ней не установлена ​​поддержка русского языка.

Говоря о Windows, при монтировании дисков с данной системой в Linux были свои проблемы. Если вы использовали KOI8-R в системе Linux, вам нужно было не забыть указать параметр -o iocharset=cp1251 если вы хотели, чтобы русские имена файлов были читаемыми.

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

Например, это сайт одной из старейших рок-групп России «Аквариум» 1996 года.

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

Однако у IRC эта проблема была гораздо дольше. Протокол IRC не имеет понятия о кодировании, все это байтовый поток. IRC-сеть RUSNet имела модифицированный IRCd с возможностью автоматического перекодирования и использовала разные порты для клиентов с разными кодировками.

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

Очевидно, я очень рад победе Unicode, потому что ни одна из этих проблем не существует в мире Unicode.

Комментарии (33)


  1. nanallew
    24.08.2021 14:47
    +1

    Интересно, имея такой опыт, чем же вы теперь занимаетесь ?)


    1. petr97 Автор
      24.08.2021 14:50
      +2

      Обратите внимание, я только перевел статью. У меня опыта работы, к сожалению - 3 года работы сисадмином в Инспекции труда после колледжа. (если не учитывать навыки, которые я получил самообучаясь)


  1. Javian
    24.08.2021 14:51

    В те времена в ПЗУ видеокарты Geforce 2 MX я прошил русский шрифт, чтобы при необходимости что-то прочитать из под DOS, не надо было бы для этого запускать keyrus.


    1. Star_Hobbit
      31.08.2021 01:15

      Знакомо - только у меня gf2 ti была... и перепрошивал, чтоб пост и сам биос на русском был - биос сам русифицировал ))


  1. JerleShannara
    24.08.2021 14:56
    +9

    бНОПНЯ ВХРЮК.


    1. tormozillo
      24.08.2021 15:01
      +5

      МЕ Я ВИД О?


      1. trawl
        24.08.2021 17:33
        +4

        ????? ?? ?? ???!


        1. ya_ne_znau
          20.09.2021 16:05

          □□□ □□□ □□□□□□□□, □ □□ □□□□ □□□□□□□□□. □□□□□□□□□!


    1. speakingfish
      24.08.2021 17:47
      +1

      иНЖАЛИД ДЕЖИЦЕ


      1. JerleShannara
        24.08.2021 18:24
        +2

        ммм, семибитный байт СССР


  1. tormozillo
    24.08.2021 14:57
    +4

    UTF-8, UTF-16, UTF-32 и EF BB BF смеются над прежним миропорядком


  1. aik
    24.08.2021 15:53

    >К тому же KOI8-R был не от Microsoft.
    КОИ-8 изначально была почтовой кодировкой — потому что сервера были на юниксе.
    В вебе её массово проталкивали пара-тройка основателей рунета, но, поскольку со стороны клиентов всё же популярна была 1251, то придумывали всяческие костыли, типа модулей к апачу для перекодировки на лету.

    >Linux давно поддерживает Windows-1251, но я не видел, чтобы кто-нибудь использовал его
    В доюникодные времена активно пользовался именно 1251. Меньше было вопросов с русскими именами файлов на фтп и самбе.


    1. santjagocorkez
      24.08.2021 23:14

      1251. Меньше было вопросов с русскими именами файлов на фтп и самбе.

      Чтобы осознать предельную ложность этого утверждения, достаточно взглянуть на кодовую страницу 1251. Под кодом 0xFF (255) в ней прячется кирилличная "я". Это стало прямо притчей во язытцех не только при разработке ftp-серверов, но и, как видно по ссылке, при разработке клиентов для них. В koi8-r, например, этому коду соответствует заглавная "Ъ". История показала, что решение разработчиков koi8-r гораздо более удачное, нежели предложенное дуболомами из Microsoft, поскольку "Ъ" в русском языке встречается... никогда. Разве что на всяких "упячках". Самая безопасная в этом плане, кстати, как ни странно, была CP866, в которой 0xFF отображён на символ, в письме обычным пользователем не использующийся вообще никак (NBSP). В итоге именно под cp1251 было нагромождено безумное количество хаков, а не под koi8-r.


      1. aik
        24.08.2021 23:22

        Я не говорю, что вопросов вообще не было.
        Но поставить соответствующий патчик для proftpd лично мне было гораздо проще, чем обучать юзеров конвертации имён файлов. А вот букву «я» в welcome.msg я так и не поборол, если память не изменяет…

        И да — я лично про себя говорю. Хотя были несколько знакомых с 1251 на линуксе. Но массово всё же было кои8, не спорю. А уж фря на юникод ещё позже линуксов перешла.


        1. santjagocorkez
          24.08.2021 23:58

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


      1. JerleShannara
        25.08.2021 06:14
        +1

        На FTP окончательно устранена проблема с буквой "", теперь вы можете пользоватьс её без ограничени.


  1. SShtole
    24.08.2021 17:21
    +9

    Очевидно, я очень рад победе Unicode, потому что ни одна из этих проблем не существует в мире Unicode.

    Юникод, конечно, штука крутая и он, конечно, решил заодно и все описанные проблемы, но, вообще-то, он не для этого создавался. У большинства людей, говорящих на других языках, большей части этих проблем не было. На самом деле, и до Юникода люди жили и не так уж плохо. Надо было просто: а) задать в ОС кодовую страницу своего языка (при том, что она изначально была правильно задана при использовании локализованной версии ОС), б) всё! Ограничение же было такое: нельзя было одновременно отображать/вводить символы, относящиеся к разным кодовым страницам. (Типа, писать письмо на французском и цитировать Гомера в оригинале). Собственно, эту проблему для всего остального мира Юникод и решил. Ну, плюс теперь у нас куча символов для эмодзи и даже вон Яндекс.Погода зачем-то вставляет зонтик в title страницы.

    Что касается наших проблем. Вспомните IE6 и его контекстное меню выбора кодировки — именно кириллица радовала большим выпадающим подменю со всеми вариантами. Куча кодировок кириллицы возникла в результате… э-э… административных факторов. Что, на самом деле, довольно удивительно для страны, где физические законы понятия регламентируются ГОСТами.

    После того, как стало ясно, что ситуация с кодировками аховая, провайдеры бросились её исправлять. Сегодня трудно в это поверить, но тогда, в начале и середине 90-х, считалось нормальным для коммерческой компании объявлять крестовый поход против своих же пользователей под флагом абстрактной инженерной идеи. А именно: не смотря на то, что у большинства пользователей была винда (что же ещё?) с её CP1251, провайдеры принудительно перекодировали трафик в соответствии со своими представлениями о том, что такое хорошо и что такое плохо. Ну, разумеется, винды были суксь и маздай, а свои железяки они гоняли под никсами, поэтому всё перекодировалось в КОИ-8. (По просьбам трудящихся, так сказать). Больше всего страдала, конечно, почта. (Тогда понятие «Интернет» включало в себя не только «Веб», но и «Email» — в буквальном смысле, т.е. провайдеры в тарифных планах указывали: «1-2-3 почтовых ящика», это уже потом всякие mail.ru с веб-интерфейсами избавили юзеров от необходимости разбираться в мейлерах). Получить письмо и прочитать можно было только при очень большем везении. Но почтой эти вредители не ограничивались. Были известны случаи и когда провайдер перепаковывал архивы (юзеры ведь быстро приспособились паковать тексты писем — так вот, чтобы им жизнь мёдом не казалась), и когда провайдер перекодировал HTTP-трафик. В последнем случае было очень круто, когда веб-мастер задавал в атрибутах страницы свою кодировку (соответствующую дальнейшему тексту), а провайдер её перекодировал, не трогая мету. Ну и не забудем, что прохождение трафика — почты, аттачей, HTTP — через более, чем одного провайдера давало результат невероятной степени рандомности в соответствии с законами комбинаторики.

    К счастью, ситуация вскоре (аккурат к концу 90-х) нормализовалась. Во-первых, почти все юзеры сами собой пришли к общему знаменателю (1251). Во-вторых, дикие провайдеры малость окультурились и перестали, пардон, гадить клиентам за их же деньги. И не смотря на отсутствие Юникода жизнь нормализовалась. Ах да, осталась третья проблема — низкий профессионализм местных разработчиков. Опять же, сейчас рассказать, какие нравы были — не поверят, но тем не менее. Считалось нормальным на машине разработчика в реестре перемапить дефолтную 1252 на 1251 (ну, чтобы в IDE не было необходимости правильно настраивать кодировку ресурсов и исходников), а потом отгрузить полученный дистрибутив счастливым пользователям. После чего единственный способ узреть вожделенную кириллицу у пользователя был… как вы понимаете, аналогично изнасиловать свой реестр. Я не шучу. Тем не менее, если человек пользовался продуктами, сделанными действительно профессиональными разработчиками (например, Microsoft), проблемы, наконец-то, сводились к общему минимуму: невозможности смешивать разные языки.

    Короче говоря, Юникод у нас оказался, типа, как изобретение телепорта, избавившее от необходимости решать проблему дураков и дорог. Кстати, довольно редкий случай, если подумать — чисто инженерное решение помогло решить административные проблемы. Всё, как мы любим ;)


    1. aik
      24.08.2021 17:55
      +1

      Надо было просто: а) задать в ОС кодовую страницу своего языка

      ОСы были разные. Да и даже внутри одной ОС тоже были проблемы (866+1251).
      Куча кодировок кириллицы возникла в результате… э-э… административных факторов.

      Как нам говорил преподаватель в школе — «не могу сказать ничего хорошего про страну, где официальная кодировка символов называется „альтернативная модифицированная“.
      Были известны случаи и когда провайдер перепаковывал архивы (юзеры ведь быстро приспособились паковать тексты писем — так вот, чтобы им жизнь мёдом не казалась), и когда провайдер перекодировал HTTP-трафик.

      Почту да, перекодировали. Вот архивы и трафик — такого я не помню. Вебстраницы, бывало, перекодировались на стороне сервера — он по юзерагенту пытался понять, кто к нему зашел и отдавал страницу в соответствующей кодировке.
      Почтовик нетскейповский мог почту лишний раз перекодировать, там у него в двух местах кодировку надо было ставить, чтобы он именно в кои8 отправлял, а не в двукратном кои8.
      После чего единственный способ узреть вожделенную кириллицу у пользователя был… как вы понимаете, аналогично изнасиловать свой реестр. Я не шучу.

      Адоб этим долго страдал. Всякая китайщина и японщина тоже отдельных танцев с бубном требовала. Ещё, кстати, можно вспомнить переход от ворда7 к ворду97, где появились юникодные шрифты и файлы стали резко толстеть.

      Так что Юникод спас не только Россию от лишних кодировок, но и вообще весь неанглоязычный мир.


      1. slonopotamus
        25.08.2021 10:06

        даже внутри одной ОС тоже были проблемы (866+1251).

        Привет из 2021-го, тут в винде эта фигня до сих пор никуда не делась в cmd.exe. И вообще, в винде три кодировки. NTFS хранит имена файлов в UTF-16.


        1. aik
          25.08.2021 10:30

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


        1. Videoman
          25.08.2021 10:50
          +1

          Не делась она для legacy софта, а так все возможности уже давным-давно есть: SetConsoleOutputCP(CP_UTF8) и вперед — можно выводит UTF-8 прямо в стандартный выход.


  1. astenix
    24.08.2021 20:51
    +1

    Если коротко, то где-то с 2006-го браузеры уже устойчиво и надежно показывали все читаемое, бо utf-8 стал стандартом для кодировки страниц. До того были постоянные игры в угадайку кодировки, даже несмотря на то, что в браузерах уже был автовыбор кодировки.

    Сегодняшние начинающие айтишники достаточно сложно понимают, что за дела с кодировкой сайтов и почему это вообще проблема, о которой надо знать. Нет такой проблемы!


  1. geher
    24.08.2021 22:03
    +2

    Одна из причин - сложная история Советского Союза и вычислительной техники - он был ​​изолирован от остального мира, и все организации, производящие компьютерное оборудование и программное обеспечение, принадлежали государству, поэтому оно могло навязать им стандарты. После распада СССР рынок был быстро захвачен западным оборудованием и программным обеспечением потому что советскую технику уже никто не производил. Частные софтверные компании тоже сразу начали выпускать ПО для импортных ОС - сначала это был DOS.

    Сложная история СССР тут точно ни при чем.

    Исторически сложилось, что кодировок было, как собак нерезаных. Даже стандартов (например, EBCDIC, ANSI), в которых были собраны в великом множестве различные кодировки, было очень много (даже если не вспоминать всякую экзотику с числом бит на символ, меньшим восьми).

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

    Были даже кодировки с расположением латиницы, отличающимся от ASCII, что доставляло "радости" и пользователям чистой латиницы.

    Только доминирование DOS и WINDOWS более-менее (но все же не до конца) свело все это разнообразие для большинства языков к двум кодировкам на каждый язык (OEM и ANSI). И вот этот дуализм сильно портит жизнь даже сейчас, когда все прогрессивное человечество свалило на уникод.

    Да даже с уникодом не все гладко. У одних UTF-16, а у других UTF-8. Бардак, одним словом, хотя и меньший, чем было в начале.

    Эта кодировка, мягко говоря, безумна: она была спроектирована так, что удаление 8-го бита оставляет вам несколько читабельную ASCII-транслитерацию русского алфавита, поэтому русские буквы не идут в обычном порядке.

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

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


  1. andreymal
    25.08.2021 03:30
    +2

    Забавный факт: десктопная версия ВКонтакте до сих пор использует 1251


    1. Alexey2005
      25.08.2021 12:17

      Ну в случае русского языка у 1251 есть громадное преимущество перед utf8: компактность. Все странички на 1251 начинают весить вдвое меньше! С учётом существенной нагрузки на сервера vk, идея уполовинить трафик чисто за счёт кодировки выглядит весьма заманчиво.


      1. andreymal
        25.08.2021 12:23

        По-моему намного лучше выглядит идея более чем уполовинить трафик за счёт gzip и brotli, которые и utf-8 сожмут без проблем :)

        Кроме того, в мобильной версии и в API у них таки utf-8


    1. suffix_ixbt
      30.08.2021 15:54
      +1

      а сайт opennet.ru в koi8-r и живёт отлично :)


  1. duke_alba
    25.08.2021 09:28

    Вот по этому как только перелез с отечественной техники на буржуйскую, стал писать комменты только по-английски. Помню, как мы мучились, делая грузинскую кодовую страницу под Oracle - американцы, видимо, были уверены, что Грузия и Джоржия - одно и то же, и не добавили грузинского алфавита :-)


  1. Red_Lord
    25.08.2021 09:28
    +3

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


    Вот не надо. Советское государство как раз и создало стандарт «Основная кодировка», он же международной ISO 8859-5. И вторую, альтернативную кодировку — ту самую CP-866 в DOS, адаптированную для использования символов псевдографики.

    Проблема как раз в том, что разработчики НЕ следовали стандартам. Вот как принималось решение о введении кодировки для Windows в Microsoft:

    ─ SU.LAN (2:478/3.11) ───────────────────────────────────────────────── SU.LAN
    From: Igor V. Semenyuk 2:50/128 13 Jan 96 00:53:00
    To: All 14 Jan 96 15:23:54
    Subj: Re: www.ru/crazyweb
    ───────────────────────────────────────────────────────────────────────────────
    From: i...@sovam.com (Igor V. Semenyuk)
    Reply-To: i...@sovam.com

    X-RealName: Igor V. Semenyuk

    Я тут написал сгоряча:

    >… может все это происки дяди Билла…

    А потом вспомнил одну историю и с ужасом подумал, может зря я
    вместе с другими дядю Билла обижаю, может и не виноват он…
    может кого поближе найти можно… может меня самого…

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

    Году так в 1991 (или это было в 1990?) Микрософт, серьезно озаботился
    локализацией своих продуктов для советского рынка. Очевидно, встал вопрос
    о кодировке. И вроде бы Микрософт запросил мнение российских
    программистов о кодовой таблице. И вот, в один прекрасный день человек
    15-20 собралось в старом здании Параграфа на Петровском бульваре,
    чтобы выработать согласованное предложение для Микрософта. Hе могу
    назвать всех участников, большинство я тогда не знал, вот те, которые
    помню: Антон Чижов из Параграфа (он председательствовал), Петя Квитек
    из Диалога (кстати, г-н Саух, Вы тогда работали в Диалоге, вполне
    могли бы поучаствовать… но страшно далеки Вы были от Windows :-),
    Женя Hестеренко (он, собственно, и притащил меня на эту встречу),
    по-моему, был еще Игорь Баздырев (автор Паравина).

    Консенсус был достигнут довольно быстро (по-моему, вся встреча длилась
    часа 2). Я смутно припоминая, что доводы были примерно такие (только
    не надо открывать дискуссию, это уже история, и тут ничего не изменишь):

    — алфавит должен быть упорядочен (кроме буквы e:)
    — сначала uppercase, потом lowercase
    — колонки 80 и 90 — табу
    — колонка A0 отпала из-за того, что A0 — non-breakable space — использовался во всех word processors
    — не помню почему, но буква «A» должна была быть в строке 0
    — тоже не помню, но разрывов не должно было быть

    В результате, осталось всего 2 варианта — четыре колонки B0-EF
    (кстати, ISO8859-5) и C0-FF.

    По-моему, решающим доводом в пользу второго варианта было то, что
    в Latin-1 (ISO8859-1) буквы с умлаутами были расположены в этих колонках.

    Потом располагали e:E:, украинские и др. символы.
    Потом, кажется, Hестеренко с Баздыревым поехали делать красивую
    распечатку драфта.

    Вот такая вот история. Конечно, вполне возможно, что выработанные
    рекомендации до Микрософта не дошли, или были им проигнорированы.
    Hо факт — русские буквы в cp1251 расположены именно так.

    Может быть, дядю Билла стоит винить в том, что он пошел на
    поводу у несознательных русских, которые сами не знали, что творят? :-)

    Честно скажу, я тогда про ISO8859-5 не знал напрочь. Знал бы,
    никогда бы за cp1261 выступать не стал бы. Hу, а у koi8 шансов
    никаких не было, к сожалению, изначально.


    То есть вместо того, чтобы взять советский ГОСТ, он же международный (ISO 8859-5) малограмотные кодеры посчитали себя самыми умными и решили выпендриться, придумав собственную быдлокодировку на коленке. Просто слов нет, одни маты только напрашиваются.

    Похожим образом решили выпендриться UNIX'оиды в 90-х и начале нулевых, опять же вместо утвержденного стандарта взяв заведомо устаревшую КОИ, которую нет никакого смысла использовать даже на EGA мониторах (с перепрограммируемым знакогенератором) и тем более в графических режимах SVGA. Ну там хотя бы есть оправдание, что она удобна в нерусифицированном софте.

    У нас могли бы быть 2 стандартные кодировки, вместо этого, блин, развели целый зоопарк.


  1. bonta
    25.08.2021 13:48

    Unicode норм, конечно..

    Но до сих пор с кодировками настоящий ад например в мире sms, который всё не уйдет на покой. Там кроме как бы основных (ucs2, 8bit, 7bit) + сжатый_не_сжатый текст ещё до кучи национальных расширений 7и битной кодировки может быть...


    1. piratarusso
      25.08.2021 15:30

      А не было единственного общепризнанного стандарта. Стандартами были ДКОИ (он же EBCDIC), и КОИ-7, КОИ-8Р. ISO8859-5 предложили сербы, и для русской кириллицы вариант оказался не очень. Кириллица для разных языков использует различные наборы букв. Здесь не было злого умысла, просто единственного хорошего способа кодировать кириллицу так и не сложилось. С латиницей та же история. Стандартных 28 букв не хватает для большинства европейских языков. И есть наши братья сербы, которые вообще используют два различных алфавита.


  1. Ole
    26.08.2021 13:02

    Для тех, кто соскучился по крякозябрам, откройте текстовый файл формата UTF-8, в заголовке которого (файла) нет BOM-маркера (EF BB BF), в 1С Предприятии 8.3.


  1. axe_chita
    27.08.2021 12:32

    На советских PDP в кодировке КОИ-7 была другая проблема. Там существовал управляющий символ который переключал режим обработки русский/латиница. ЕМНИП если его не подать у софта начинались веселые глюки.
    Добавлю в эту кучку стандартов кодировок, ещё модификацию КОИ-8Р для компьютеров стандарта MSX.