СообЧа > База Знаний > Программирование > Delphi

Вопрос

Как мне перекодировать строки из Win-кодировки в Dos-кодировку и наоборот?

Ответ

CharToOEM, OEMToChar, CharToOEMBuff, OEMToCharBuff.

1. if S <> '' then CharToOem(PChar(S),PChar(S));
2. CharToOem(Pointer(S),Pointer(S));

Примечания:
1. Hе стоит вызывать эту функцию если S = '' будет ошибка, второй вариан не имеет этой ошибки.
2. Заметьте однако, что эти функции не умеют делать таких, вещей, как koi8-r в DOS и т. п.
3. Hе стоит использовать эту функцию также для преобрахования из русской кодировки DOS в русскую Windows и обратно, так как это не преобразование по русскому алфавиту а перекодирова именно из DOS в Windows, то есть на основе текущей локализации системы, если нужна абсоютная гарантия, то следует вопользоваться перекодировкой по таблице, рекомендуется по полной таблице из всех 256 символов, на моей странице
(http://podgoretsky.com) есть универсальная функция перекодировки (CharCvt) с набором некоторых основных таблиц.

Из конференции Delphi



Copyright © 2000-2004 Сообщество Чайников
Контактная информация