Вашему вниманию предлагается несколько
файлов, могущих избавить Вас от мучений при
работе с текстами, набранными в украинской
кодировке ГОСТ 2018-91. Это самая
распространенная кодировка украинских
букв для MS-DOS. В этой кодировке после буквы Ё
на позициях с кодами, начиная с 242 (0xf2)
украинские буквы расположены в алфавитном
порядке: ҐґЄєІіЇї.
При выполнении приведенных здесь
рекомендаций Вы получите следующие
возможности:
- импорт и экспорт текстовых файлов между
кодировками DOS и WIN1251 для 16-разрядных
приложений. В этом случае перекодировка
проходит напрямую между кодовыми
таблицами. За это отвечает файл xlat866.bin.
- импорт и экспорт текстовых файлов между
кодировками DOS и WIN1251 для 32-разрядных
приложений. В этом случае перекодировка
проходит через UNICODE. (за правильную
перекодировку украинских букв в этом
случае отвечает файл cp_866.nls)
- отображение украинских букв в окне MS-DOS. (тут
пригодиться charset.dat)
- правильное отображение в FAR-е имен папок
и файлов, содержащих украинские буквы в
своих наименованиях (для этого нужен unicode.bin)
Итак, рекомендации:
- О консольных шрифтах и украинизаторе
клавиатуры я здесь рассказывать не буду.
Можно использовать все что угодно - keyrus,
keyukr, mova, uniscr, unikbd, mode con, keyb и т.п. Лишь бы
кодовую таблицу нужную загрузить и была
возможность буквы набирать. Используйте
то, что и раньше.
- В каталоге windows\system нужно заменить четыре
файла charset.dat, cp_866.nls, unicode.bin, xlat866.bin. Просто
так Windows не даст их записать. Проще всего
это сделать, выбрав в меню Пуск, "Завершение
работы", "перезагрузить компьютер в
режиме MS-DOS", а потом переписать файлы.
- На всех приложениях MS-DOS, которые Вы
хотите видеть в окне с нормальными
украинскими буквами, нужно в свойствах,
"Шрифт", "Типы шрифтов"
поставить "Только TrueType". Это никак не
ограничит Вас в разнообразии выбора
шрифтов, т.к. там все равно ТТ шрифтов
очень много, зато все украинские буквы
будут правильно отображаться.
Все! Этого достаточно для большинства
случаев!
Но, мне кажется, есть в этом всем одна
недоделка - в cp_866.nls должно указываться еще и,
является ли конкретный символ буквой,
цифрой, или еще чем-то. А может это только в
unicode лежит? Короче, я этого не делал. Если есть желающие
покопаться - пожалуйста. Т.е. я не гарантирую,
что функции типа ischar(), isdigit() и т.п. на
украинских буквах будут нормально работать.
Сделать это достаточно просто, в softIce
ставится bpx ischar или на ту функцию, которая
работает неправильно, и смотрится, какую
часть файла он использует для определения
возвращаемого кода. Потом эта часть файла и
корректируется для правильной работы.
Забирать это добро здесь.
(c) Сергей Сединкин
Обсудим?
Вернуться на главную
страничку