Всем доброго дня, не могу найти(и сам сделать тоже не домозгую) алгоритм правильного преобразования кириллического символа в нужную кодировку.
То бишь если у меня есть C:\WORK\Аня\diplomka_1, то после считывания данной строки через
Reg.ReadBinaryData( 'Dip', BinData, SizeOf(BinData) );
я получу
C:\WORK\.=О\diplomka_1
в самом ключе так же этот параметр выглядит естественно и надо смотреть на байты данных символов
.=О это 10 3D 4F
Но вот как распознать это дело мне не дано, спасибо за помощь.
Считать правильно кириллицу из REG_BINARY
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Надо просто правильно записывать.
Покажите лучше как записывается это значение.
А также для подобных значений не следует использовать REG_BINARY. Нужно REG_SZ или REG_MULTI_SZ
Покажите лучше как записывается это значение.
А также для подобных значений не следует использовать REG_BINARY. Нужно REG_SZ или REG_MULTI_SZ
-
- Сообщения: 3
- Зарегистрирован: 04 июн 2009, 16:49
Для подоных вещей правильно вообще будет писать в стрковый параметрNaeel Maqsudov писал(а):Надо просто правильно записывать.
Покажите лучше как записывается это значение.
А также для подобных значений не следует использовать REG_BINARY. Нужно REG_SZ или REG_MULTI_SZ

А пишут студенты ручками, ну или особо продвинутые с помощью своих инсталляторов.
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Ну 10 3D 4F - это никак не кириллица ни в cp866, ни в KOI8, ни в Win1251.
-
- Сообщения: 3
- Зарегистрирован: 04 июн 2009, 16:49
Я понимаю, но не смог подобрать правильного определения - а назвал кириллицей потому что когда вот это пишешь в параметре REG_BINARY например слово Аня(по-русски естественно) то вместо этого слова появляется .=О что соотвествует вышеназванным байтам, отображающиеся слева.Naeel Maqsudov писал(а):Ну 10 3D 4F - это никак не кириллица ни в cp866, ни в KOI8, ни в Win1251.
Как мне в итоге после считывания из строки .=О получить Аня?
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Не знаю подойдет ли, попробуй это:
function DosToWin(St: string): string;
var
Ch: PChar;
begin
Ch := StrAlloc(Length(St) + 1);
OemToAnsi(PChar(St), Ch);
Result := Ch;
StrDispose(Ch)
end;
function DosToWin(St: string): string;
var
Ch: PChar;
begin
Ch := StrAlloc(Length(St) + 1);
OemToAnsi(PChar(St), Ch);
Result := Ch;
StrDispose(Ch)
end;
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD
