Кодировки

Тема в разделе "Delphi - Сети", создана пользователем Froex, 4 фев 2008.

  1. Froex

    Froex Гость

    Испольую метод IdHTTP.GET для принятия исходного кода страницы. Если принимается русский текст, то отображается иероглифами. Так и не понял, как это исправить.
     
  2. Froex

    Froex Гость

    Код (Text):
    ...
    IdHTTP1.Get('http://www.aaaaaa.ru/index.html',response);
    temp:=response.datastring;
    memo.text:=temp;
    ...
    в результате показываются вместо русских букв иероглифы типа ПÑ?офиль
     
  3. Froex

    Froex Гость

    Сейчас посмотрю. Просто я думал, что дело в настройках IdHTTP
     
  4. Froex

    Froex Гость

    Ничего не понял из поиска. Сделал свои функции. Банально, конечно, но действует.
    Код (Text):
    unit Convert;

    interface
    function UTFToWin(Str: string): string;
    function WinToUTF(Str: string): string;

    implementation

    const
    UTF: array[1..66] of string = (
    'Р°','Р±','РІ','Рі','Рґ','Рµ','С‘','Р¶','Р·','Рё',
    'Р№','Рє','Р»','Рј','РЅ','Рѕ','Рї','С€','С�','С‚',
    'Сƒ','С„','С…','С†','С‡','Сˆ','С‰','СŠ','С‹','СŒ',
    'С�','СŽ','С�','Р�','Р‘','Р’','Р”','Р”','Р•','Р�',
    'Р–','Р—','Р˜','Р™','Рš','Р›','Рœ','Р�','Рž','РŸ',
    'Р ','РЎ','Рў','РЈ','Р¤','РҐ','Р¦','Р§','РЁ','Р©',
    'РЄ','Р«','Р¬','Р­','Р®','РЇ');


    Win: array[1..66] of string = (
    'а', 'б', 'в', 'г', 'д', 'е', 'ё', 'ж', 'з', 'и',
    'й', 'к', 'л', 'м', 'н', 'о', 'п', 'р', 'с', 'т',
    'у', 'ф', 'х', 'ц', 'ч', 'ш', 'щ', 'ъ', 'ы', 'ь',
    'э', 'ю', 'я', 'А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ё',
    'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П',
    'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ',
    'Ъ', 'Ы', 'Ь', 'Э', 'Ю', 'Я');

    function UTFToWin(Str: string): string;
    var i,j:integer;
    temp:string;
    begin
    temp:='';
    i:=1;
    while i<=length(str) do
    begin
    for j:=1 to 66 do
    begin
    if (str[i]+str[i+1])=UTF[j] then
    begin
    temp:=temp+Win[j];
    i:=i+1;
    break;
    end
    else if j=66 then temp:=temp+str[i];
    end;
    i:=i+1;
    end;
    UTFToWin:=temp;
    end;

    function WinToUTF(Str: string): string;
    var i,j:integer;
    temp:string;
    begin
    temp:='';
    i:=1;
    while i<=length(str) do
    begin
    for j:=1 to 66 do
    begin
    if str[i]=Win[j] then
    begin
    temp:=temp+UTF[j];
    break;
    end
    else if j=66 then temp:=temp+str[i];
    end;
    i:=i+1;
    end;
    WinToUTF:=temp;
    end;

    end.
     
Загрузка...
Похожие Темы - Кодировки
  1. AleksP
    Ответов:
    0
    Просмотров:
    1.398
  2. xKlonx
    Ответов:
    6
    Просмотров:
    3.454
  3. Kizarek86
    Ответов:
    11
    Просмотров:
    16.375

Поделиться этой страницей