Я использую codegear C++ builder 2007. Я пытаюсь прочитать строковое значение с помощью пути из реестра. Этот путь может содержать символы юникода, например, русский.Чтение строки unicode из реестра
Я добавил строковое значение с regedit и проверил путем экспорта, что значение действительно содержит ожидаемые символы юникода. Результат в S1, S2 и S3 ниже всех содержит '?' (0x3F) вместо символов Юникода. Что мне не хватает?
TRegistry *Registry = new TRegistry;
try
{
Registry->RootKey = HKEY_CURRENT_USER;
if (Registry->OpenKey ("Software\\qwe\\asd", false))
{
AnsiString S1 = Registry->ReadString ("zxc");
WideString S2 = Registry->ReadString ("zxc");
UTF8String S3 = Registry->ReadString ("zxc");
}
}
__finally
{
delete Registry;
}
/Бьорн
К сожалению, это не проблема. Длина возвращаемой строки верна, но каждый символ юникода заменяется вопросительным знаком (ascii 0x3F). – 2009-12-22 12:05:02