Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

CGI смена кодировок [D6, WinXP]


Marsel83 ©   (2005-07-25 11:17:00) 

Пишу CGI
Из формы методом GET передаются данные
Данные, переданные на английском языке воспринимаются правильно, текст же на русском языке обрабатывается в программе неверно. Как обойти данную проблему?


Alexander Panov   (2005-07-25 12:29:00) [1]

Только вместо IntToHex используй другую функцию. Борландовская жутко неоптимальная.


Alexander Panov   (2005-07-25 12:27:00) [2]

Либо методом POST передавй, либо перекодируй в HEX-вид примерно так:
class function THTTPQuery.Encode(const Src: String): String;
var
 i: Integer;
 index,LenSrc: Integer;
 s: String[2];
begin
 Result :='';
 if Src='' then Exit;
 Index := 0;
 LenSrc := Length(Src);
 SetLength(Result,LenSrc*3);
 for i := 1 to LenSrc do
 begin
   case Src[i] of
     'a'..'z','A'..'Z':
       begin
         Result[Index+1] := Src[i];
         Inc(Index);
       end;
     else
       begin
         s := IntToHex(Ord(Src[i]),2);
         Result[Index+1] := '%';
         Result[Index+2] := s[1];
         Result[Index+3] := s[2];
         Inc(Index,3);
       end;
   end;
 end;
 SetLength(Result,Index);
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо