Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Беседы ни о чем

Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Freeman » 15 июл 2014, 00:48

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

Ух, какая тема! Не смог пройти мимо. Вынес во флейм, чтобы не флудить в основной.

Пруфы на доказательства абсурдности, пожалуйста. Мож я чего не знаю? Для меня смысл существования разных кодировок для OEM и ANSI прозрачен и лежит на поверхности. Сначала хочу услышать другие мнения, потом выскажу свое.
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 688
Зарегистрирован: 06 дек 2012, 04:49
Откуда: Санкт-Петербург

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение nongrato » 15 июл 2014, 01:22

Есть Юникод. Остальное не нужно.
SGI Octane2 | SGI VW 320 | Sun Ultra 10 | Sun Sparcstation 20
Аватара пользователя
nongrato
Мастер Даунгрейда
 
Сообщения: 655
Зарегистрирован: 21 апр 2013, 15:26
Откуда: СПб

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение SokilOff » 15 июл 2014, 01:54

Freeman писал(а):Для меня смысл существования разных кодировок для OEM и ANSI прозрачен и лежит на поверхности

Дело совсем не в смысле. Просто "так исторически сложилось" :) С тем же успехом можно спросить "какой смысл в существовании разных дагерротипов/фотопластин/фотопленки (нужное подчеркнуть), когда есть отличные цифровые камеры".

На самом деле те, кто хоть немножко интересовался историей DOS и Windows прекрасно знают, как, когда и почему возникли OEM и ANSI-кодировки. А также почему они получились именно такими, какими получились. И вообще рекомендую к прочтению.
Лень - это привычка отдыхать ещё до того, как устал.
Аватара пользователя
SokilOff
Мастер Даунгрейда
 
Сообщения: 530
Зарегистрирован: 09 янв 2013, 00:24

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Freeman » 15 июл 2014, 03:07

SokilOff писал(а):И вообще рекомендую к прочтению.

Годный материал. Нужное предложение там есть.
Аватара пользователя
Freeman
Мастер Даунгрейда
 
Сообщения: 688
Зарегистрирован: 06 дек 2012, 04:49
Откуда: Санкт-Петербург

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 06:10

Порассматривайте пока картинки.

Особенно обратите внимание на жёлтый квадратик с восклицательным знаком на второй картинке (1251) - Украинские буковки I,i.
Это всё шитая белыми нитками лажа. Причём лажа огромных масштабов и приведшая к огромным неудобствам.
Зато в микрософте говнюки оказались вполне довольны своей проделкой. Туеву хучу работающего софта угробили одним махом...
Такова селяви.

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

Теперь об Украинской буковке I,i.
Самое правильное - не заморачиваться, а использовать обычную латинскую I,i (Как я и сделал сейчас в этом тексте).
Но нет - то была бы не микрософт. Поэтому они выделили под неё (в Win1251) отдельный код.
Который сами-же не могут теперь верно взаимно-обратно конвертировать 866<->1251.
В результате файлы, имеющие в имени хоть одну украинскую буковку i, я уже в сеансе DOS (c VC или FAR'ом) не могу ни удалить, ни переименовать, ни получить к ним доступа. Потому что при конвертировании имени в DOS-OEM этот символ заменяется вопросительным знаком. А в DOS, как известно, вопросительные знаки в именах запрещены. Так что, пользуемся эксплорером. А чо - тоже очень хорошая программа. Тёткам всем знакомым нравится..
(Кстати, давно собирался сделать WIN32-утилиту, которая бы искала файлы с украинскими i в имени и заменяла бы их на обычные латинские i .Да всё не соберусь. Переименовываю ручками).

.
Вложения
name_i.png
name_i.png (2.21 Кб) Просмотров: 19586
1.png
1.png (409.07 Кб) Просмотров: 19603
Последний раз редактировалось Nika 15 июл 2014, 07:06, всего редактировалось 18 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

866 в WinME

Сообщение SergeCpp » 15 июл 2014, 07:05

866 таблица в WinME

Изображение
В полный размер: http://old-dos.ru/screens/1328/me_ascii_in_win_me.png
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 573
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 07:13

Да, вы видите, что у меня вместо их белорусских УВ,ув - наша украинская ГЕ,ге.
А под УВ,ув можно выделить пару кодов, обведённых синим квадратом. Или любую другую пару кодов.
То-есть, можно все символы нормально разместить, если не заморачиваться "интегралами", "градусами", "корнями" и "плюсами-минусами".

Я акцентирую внимание на том, что замена кодировки 866->1251 НИКАКИХ выгод никому не принесла. Кроме фирмы микрософт.
У остальных - только никому не нужный головняк от всего от этого.

(Кстати, обратите внимание, на фотографии экрана - в обычном хекс-вьювере от VC файл размером 256 байтов с байтами 00..FF
И во втором случае я просто переключил раскладку экранных шрифтов, файл тот же самый.
Только SNARF'ом мне не удалось заскриншотить экран с раскладкой 1251, поэтому пришлось фотографировать его телефоном).
Сперва я тоже хотел запустить MEL.EXE и следом MEW.EXE - было бы то же самое, но не так наглядно.
Последний раз редактировалось Nika 15 июл 2014, 07:35, всего редактировалось 7 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

WinME — Ї и ї

Сообщение SergeCpp » 15 июл 2014, 07:38

Nika писал(а):В результате файлы, имеющие в имени хоть одну украинскую буковку i, я уже в сеансе DOS (c VC или FAR'ом) не могу ни удалить, ни переименовать, ни получить к ним доступа. Потому что при конвертировании имени в DOS-OEM этот символ заменяется вопросительным знаком.


Большая (Ї): Alt+0175 в Windows.
Маленькая (ї): Alt+0191 в Windows.

В дос-окно переносил мышкой и убирал потом путь (для большей ясности).

ukrainian_i_a.png
ukrainian_i_a.png (10.43 Кб) Просмотров: 19287

ukrainian_i_b.png
ukrainian_i_b.png (14.24 Кб) Просмотров: 19397


В Фаре тоже переименовывается, скрины я уж не стал делать.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 573
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 07:45

Нет.Ї,ї без проблем.
Я говорил о букве І,і (0xB2,0xB3 -Win1251) . А вот - латинская I,i (0x49,0x69).
Это разные символы, хоть и одного и того же очертания.
Вот и спрашивается - нахрена у них разные коды?
.
Вложения
0.png
0.png (1.52 Кб) Просмотров: 19423
Последний раз редактировалось Nika 15 июл 2014, 08:02, всего редактировалось 7 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение SergeCpp » 15 июл 2014, 08:02

Nika писал(а):Нет.Їиї без проблем.
Я говорил о букве І,і (0xB2,0xB3 -Win1251) . А вот - латинская I,i (0x49,0x69).
Это разные символы, хотя одного и того же очертания.


Да, я сделал файл Іі (0xB2,0xB3 -Win1251), он имеет короткое имя DOS: "__~1", а длинное в DOS: "__" (там и там -- по два подчёркивания).

ME7 этот файл показывает, открывает (как "__~1"), можно изменить, сохраняет (имя в Windows сохраняется прежнее), но не переименовывает. DOS-окно и Far -- тоже не переименовывает. Удалить в Far -- можно (только заметно дольше /секунды три-четыре!/ "обычного файла"...)! В ME7 -- не удаляется.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 573
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 08:07

Ну, а в WinXP полный ступор.
Я ж говорю, надо делать примитивную утититу - чтобы только тыц - и украинская буковка в имени заменилась на латинскую.

-- Добавлено --
Кстати, если помните, были такие программы - шутки - перекодировали в тексте всю кириллицу
в сходные по очертаниям латинские символы. Поиск в таком тексте переставал работать.

Этого же можно добиться и простым перекодировщиком типа XLAT.COM
- только нужно подсунуть ему соответствующую перекодировочную таблицу.
Последний раз редактировалось Nika 15 июл 2014, 08:20, всего редактировалось 5 раз(а).
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение SergeCpp » 15 июл 2014, 08:13

Вот так Far удаляет -- 2.3 секунды:
Код: Выделить всё
27   11:03:34.394   Far:FFF68451   FindOpen   C:\Z\TEST\__   NOTFOUND      
28   11:03:34.394   Far:FFF68451   Delete   C:\Z\TEST\__   NOTFOUND      
29   11:03:36.669   Far:FFF68451   FindOpen   C:\Z\TEST\__~1   SUCCESS   Іі   
30   11:03:36.669   Far:FFF68451   FindClose   C:\Z\TEST\__~1   SUCCESS      
31   11:03:36.669   Far:FFF68451   Delete   C:\Z\TEST\__~1   SUCCESS      
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 573
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 08:17

SergeCpp писал(а):Вот так Far удаляет -- 2.3 секунды:...

Ну вы-то знаете, что удаляет не FAR, а система. У вас другая система, чем у меня..
За такие вот чудеса я и не люблю эти NT, но приходится ими пользоваться, никуда не денешься.
Последний раз редактировалось Nika 15 июл 2014, 08:18, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение SergeCpp » 15 июл 2014, 08:22

Nika писал(а):Кстати, если помните, были такие программы - шутки - перекодировали в тексте всю кириллицу
в сходные по очертаниям латинские символы. Поиск в таком тексте переставал работать.


В ME у меня для проверки такого есть специальное регулярное выражение с собственным названием <mix>, см. Control+F, [X] Сокращения, F3, "English-Russian mix", F3.

В TODO есть запись, что надо бы и команду такую сделать, но пока и рег.выр. хватает.
Последний раз редактировалось SergeCpp 15 июл 2014, 08:30, всего редактировалось 1 раз.
Аватара пользователя
SergeCpp
Мастер Даунгрейда
 
Сообщения: 573
Зарегистрирован: 11 апр 2011, 12:49
Откуда: At Home

Re: Зачем нужны разные кодировки OEM и ANSI, все эти 866 и 1251

Сообщение Nika » 15 июл 2014, 08:29

SergeCpp писал(а):
Nika писал(а):Кстати, если помните, были такие программы - шутки - перекодировали в тексте всю кириллицу
в сходные по очертаниям латинские символы. Поиск в таком тексте переставал работать.
В ME у меня для проверки такого есть специальное регулярное выражение с собственным названием <mix>, см. Control+F, F3, "English-Russian mix", F3.
В TODO есть запись, что надо бы и команду такую сделать, но пока и рег.выр. хватает.
Хм. Если делать такое в виде макроса, то работать оно должно только для выделенного блока текста.
Идея интересная..
Последний раз редактировалось Nika 15 июл 2014, 08:30, всего редактировалось 1 раз.
Nika
Мастер Даунгрейда
 
Сообщения: 752
Зарегистрирован: 16 окт 2013, 23:21

След.

Вернуться в Флейм

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2