function HexDigit(i: Integer): String;
var
hchr: array[0..15] of Char;
begin
hchr[0]:= '0';
hchr[1]:= '1';
hchr[2]:= '2';
hchr[3]:= '3';
hchr[4]:= '4';
hchr[5]:= '5';
hchr[6]:= '6';
hchr[7]:= '7';
hchr[8]:= '8';
hchr[9]:= '9';
hchr[10]:= 'A';
hchr[11]:= 'B';
hchr[12]:= 'C';
hchr[13]:= 'D';
hchr[14]:= 'E';
hchr[15]:= 'F';
HexDigit := hchr[i and $F];
end;
function Byte2Hex(i: Integer): String;
var
s: String;
begin
s := HexDigit( i and $F );
i := right(i, 4); //i div 16; //shr 4;
Byte2Hex := HexDigit( i and $F ) + s;
end;
function tohtmlcode(s: String): String;
var
r: String;
i: Integer;
begin
r := '';
for i := 0 to Length(s) - 1 do
r := r + '%' + Byte2Hex(Ord(GetChar(s, i)));
tohtmlcode:= r;
end;
function Str2UTF8(sta: string):string;
var ia: integer; saa : string;
begin
saa:='';
for ia:= 0 to Length(sta) do
if GetChar(sta, ia) > '~' then
saa:= saa + Chr(Ord(GetChar(sta, ia)) - 64432)
else
saa:= saa + GetChar(sta, ia);
Str2UTF8:= Copy(saa, 0, Length(saa)-1);
end;
function Str2ASCII(sta: string):string;
var ia: integer; saa: string;
begin
saa:='';
for ia:= 0 to Length(sta) do
if GetChar(sta, ia) > '~' then
saa:= saa + Chr(Ord(GetChar(sta, ia)) + 64432)
else
saa:= saa + GetChar(sta, ia);
Str2ASCII:= Copy(saa, 0, Length(saa)-1);
end;
function mp(s, sub: String): Integer;
var
i: Integer;
begin
mp:= -1;
for i:= 0 to Length(s) - 1 do begin
if tohtmlcode(GetChar(s, i)) = tohtmlcode(sub) then begin
mp:= i;
Break;
end;
end;
end;
function WinKoi(st: String): String;
var
i: Integer;
z: Integer;
s: String;
win: String;
koi: String;
begin
s := st;
win := Chr(168) + Chr(84) + Chr(254) + Chr(224) + Chr(225) + Chr(246) + Chr(228) + Chr(229) + Chr(244) + Chr(227) +
Chr(245) + Chr(232) + Chr(233) + Chr(234) + Chr(235) + Chr(236) + Chr(237) + Chr(238) + Chr(239) + Chr(255) + Chr(240) +
Chr(241) + Chr(242) + Chr(243) + Chr(230) + Chr(226) + Chr(252) + Chr(251) + Chr(231) + Chr(248) + Chr(253) + Chr(249) +
Chr(247) + Chr(250) + Chr(222) + Chr(192) + Chr(193) + Chr(214) + Chr(196) + Chr(197) + Chr(212) + Chr(195) + Chr(213) +
Chr(200) + Chr(201) + Chr(202) + Chr(203) + Chr(204) + Chr(205) + Chr(206) + Chr(207) + Chr(223) + Chr(208) + Chr(209) +
Chr(210) + Chr(211) + Chr(198) + Chr(194) + Chr(220) + Chr(219) + Chr(199) + Chr(216) + Chr(221) + Chr(217) + Chr(215) +
Chr(218) + Chr(144);
koi := Chr(168) + Chr(184) + Chr(192) + Chr(193) + Chr(194) + Chr(195) + Chr(196) + Chr(197) + Chr(198) + Chr(199) +
Chr(200) + Chr(201) + Chr(202) + Chr(203) + Chr(204) + Chr(205) + Chr(206) + Chr(207) + Chr(208) + Chr(209) + Chr(210) +
Chr(211) + Chr(212) + Chr(213) + Chr(214) + Chr(215) + Chr(216) + Chr(217) + Chr(218) + Chr(219) + Chr(220) + Chr(221) +
Chr(222) + Chr(223) + Chr(224) + Chr(225) + Chr(226) + Chr(227) + Chr(228) + Chr(229) + Chr(230) + Chr(231) + Chr(232) +
Chr(233) + Chr(234) + Chr(235) + Chr(236) + Chr(237) + Chr(238) + Chr(239) + Chr(240) + Chr(241) + Chr(242) + Chr(243) +
Chr(244) + Chr(245) + Chr(246) + Chr(247) + Chr(248) + Chr(249) + Chr(250) + Chr(251) + Chr(252) + Chr(253) + Chr(254) +
Chr(255) + Chr(144);
for i := 0 to Length(s) - 1 do begin
z := {Pos}mp(win, GetChar(s, i));
if (z > -1) then
s:= SetChar(s, GetChar(koi, z), i);
end;
WinKoi := s;
end;
затем Text:= Str2ASCII(GetTextBoxString);
и перед пост запросом tohtmlcode(WinKoi(Text));
вопчем что то типа того, сначало было проще)
я сейчас на делфи пишу, пока перевел на мидлет паскаль этот банальный код изматерился весь %))