Получаю код страницы Яндекса(post-запрос поисковику) через API WinInet. Страница возвращается мне в UTF-8. НО для одних страниц функция UTF8toAnsi срабатывает, а для других - нет, возвращает пустую строку. Полученный код от яндекса я сохраняю в UTF8String. Значит проблема в этой строке, может в конце каким-то образом не стоит #0 (но тогда компилятор бы ругнулся на Out of Memory), или #0 стоит еще и в середине...других версий у меня пока нет. Тогда записал в файлы 2 html страницы, с одной из которых UTF8toAnsi сработала нормально, а с другой - нет. Сравнения этих файлов ничего не дало. После этого я залез в System.pas, перекодировка в итоге сводится к функции
| Код | function Utf8ToUnicode(Dest: PWideChar; MaxDestChars: Cardinal; Source: PChar; SourceBytes: Cardinal): Cardinal;
|
Но пока я так и не понял в чем косяк. Главный вопрос: что UTF8toAnsi находит во входной строке, что отказывается ее преобразовывать?
|