Have Delphi a routine that encodes latin characters like é,ç to
corresponding é ã (HTTPEncode seems geared to forms)
thanks
Ronaldo
Gabriel <no@no> wrote in message
news:1a8hls8hbio730sf0...@4ax.com...
This is from Pixelpack ( www.femte-gear.dk/pixelpack) , our open source
project :
Function PxMakeLatinHTML(s : string) : string;
procedure repl(var s : string;r : string; posi : integer);
begin
delete(s,posi,1);
insert(r,s,posi);
end;
var
i : integer;
r : string;
begin
i:=0;
while i<length(s) do
begin
r:='';
case ord(s[i]) of
160 : r:='nbsp';
161 : r:='excl';
162 : r:='cent';
163 : r:='ound';
164 : r:='curren';
165 : r:='yen';
166 : r:='brvbar';
167 : r:='sect';
168 : r:='uml';
169 : r:='copy';
170 : r:='ordf';
171 : r:='laquo';
172 : r:='not';
173 : r:='shy';
174 : r:='reg';
175 : r:='macr';
176 : r:='deg';
177 : r:='plusmn';
178 : r:='sup2';
179 : r:='sup3';
180 : r:='acute';
181 : r:='micro';
182 : r:='para';
183 : r:='middot';
184 : r:='cedil';
185 : r:='sup1';
186 : r:='ordm';
187 : r:='raquo';
188 : r:='frac14';
189 : r:='frac12';
190 : r:='frac34';
191 : r:='iquest';
192 : r:='Agrave';
193 : r:='Aacute';
194 : r:='Acirc';
195 : r:='Atilde';
196 : r:='Auml';
197 : r:='Aring';
198 : r:='AElig';
199 : r:='Ccedil';
200 : r:='Egrave';
201 : r:='Eacute';
202 : r:='Ecirc';
203 : r:='Euml';
204 : r:='Igrave';
205 : r:='Iacute';
206 : r:='Icirc';
207 : r:='Iuml';
208 : r:='ETH';
209 : r:='Ntilde';
210 : r:='Ograve';
211 : r:='Oacute';
212 : r:='Ocirc';
213 : r:='Otilde';
214 : r:='Ouml';
215 : r:='times';
216 : r:='Oslash';
217 : r:='Ugrave';
218 : r:='Uacute';
219 : r:='Ucirc';
220 : r:='Uuml';
221 : r:='Yacute';
222 : r:='THORN';
223 : r:='szlig';
224 : r:='agrave';
225 : r:='aacute';
226 : r:='acirc';
227 : r:='atilde';
228 : r:='auml';
229 : r:='aring';
230 : r:='aelig';
231 : r:='ccedil';
232 : r:='egrave';
233 : r:='eacute';
234 : r:='ecirc';
235 : r:='euml';
236 : r:='igrave';
237 : r:='iacute';
238 : r:='icirc';
239 : r:='iuml';
240 : r:='eth';
241 : r:='ntilde';
242 : r:='ograve';
243 : r:='oacute';
244 : r:='ocirc';
245 : r:='otilde';
246 : r:='ouml';
247 : r:='divide';
248 : r:='oslash';
249 : r:='ugrave';
250 : r:='uacute';
251 : r:='ucirc';
252 : r:='uuml';
253 : r:='yacute';
254 : r:='thorn';
255 : r:='yuml';
end;
if r<>'' then
repl(s,'&'+r,i);
inc(i)
end;
result:=s;
end;
Converts a string into a form that contains no values that are illegal in an
HTTP message header.
David Mulligan
iDOiNK
Decodes a string that includes HTTP escape characters.
David Mulligan
iDOiNK
"David Mulligan" <david.m...@idoink.com> wrote in message
news:395a1dd4@dnews...
I also needed a function like this, and I took your advice. Here's
what I came up with, maybe it will save someone out there some typing
(be sure to include Sysutils):
==========================
function HTMLEncode(astr: String): String;
begin
Result := astr;
Result := StringReplace(Result,'"','"',[rfReplaceAll]);
Result := StringReplace(Result,'&','&',[rfReplaceAll]);
Result := StringReplace(Result,'<','<',[rfReplaceAll]);
Result := StringReplace(Result,'>','>',[rfReplaceAll]);
Result := StringReplace(Result,' ',' ',[rfReplaceAll]);
Result := StringReplace(Result,'¡','¡',[rfReplaceAll]);
Result := StringReplace(Result,'¢','¢',[rfReplaceAll]);
Result := StringReplace(Result,'£','£',[rfReplaceAll]);
Result := StringReplace(Result,'¤','¤',[rfReplaceAll]);
Result := StringReplace(Result,'¥','¥',[rfReplaceAll]);
Result := StringReplace(Result,'¦','¦',[rfReplaceAll]);
Result := StringReplace(Result,'§','§',[rfReplaceAll]);
Result := StringReplace(Result,'¨','¨',[rfReplaceAll]);
Result := StringReplace(Result,'©','©',[rfReplaceAll]);
Result := StringReplace(Result,'ª','ª',[rfReplaceAll]);
Result := StringReplace(Result,'«','«',[rfReplaceAll]);
Result := StringReplace(Result,'¬','¬',[rfReplaceAll]);
Result := StringReplace(Result,'','­',[rfReplaceAll]);
Result := StringReplace(Result,'®','®',[rfReplaceAll]);
Result := StringReplace(Result,'¯','¯',[rfReplaceAll]);
Result := StringReplace(Result,'°','°',[rfReplaceAll]);
Result := StringReplace(Result,'±','±',[rfReplaceAll]);
Result := StringReplace(Result,'²','²',[rfReplaceAll]);
Result := StringReplace(Result,'³','³',[rfReplaceAll]);
Result := StringReplace(Result,'´','´',[rfReplaceAll]);
Result := StringReplace(Result,'µ','µ',[rfReplaceAll]);
Result := StringReplace(Result,'¶','¶',[rfReplaceAll]);
Result := StringReplace(Result,'·','·',[rfReplaceAll]);
Result := StringReplace(Result,'¸','¸',[rfReplaceAll]);
Result := StringReplace(Result,'¹','¹',[rfReplaceAll]);
Result := StringReplace(Result,'º','º',[rfReplaceAll]);
Result := StringReplace(Result,'»','»',[rfReplaceAll]);
Result := StringReplace(Result,'¼','¼',[rfReplaceAll]);
Result := StringReplace(Result,'½','½',[rfReplaceAll]);
Result := StringReplace(Result,'¾','¾',[rfReplaceAll]);
Result := StringReplace(Result,'¿','¿',[rfReplaceAll]);
Result := StringReplace(Result,'À','À',[rfReplaceAll]);
Result := StringReplace(Result,'Á','Á',[rfReplaceAll]);
Result := StringReplace(Result,'Â','Â',[rfReplaceAll]);
Result := StringReplace(Result,'Ã','Ã',[rfReplaceAll]);
Result := StringReplace(Result,'Ä','Ä',[rfReplaceAll]);
Result := StringReplace(Result,'Å','Å',[rfReplaceAll]);
Result := StringReplace(Result,'Æ','Æ',[rfReplaceAll]);
Result := StringReplace(Result,'Ç','Ç',[rfReplaceAll]);
Result := StringReplace(Result,'È','È',[rfReplaceAll]);
Result := StringReplace(Result,'É','É',[rfReplaceAll]);
Result := StringReplace(Result,'Ê','Ê',[rfReplaceAll]);
Result := StringReplace(Result,'Ë','Ë',[rfReplaceAll]);
Result := StringReplace(Result,'Ì','Ì',[rfReplaceAll]);
Result := StringReplace(Result,'Í','Í',[rfReplaceAll]);
Result := StringReplace(Result,'Î','Î',[rfReplaceAll]);
Result := StringReplace(Result,'Ï','Ï',[rfReplaceAll]);
Result := StringReplace(Result,'Ð','Ð',[rfReplaceAll]);
Result := StringReplace(Result,'Ñ','Ñ',[rfReplaceAll]);
Result := StringReplace(Result,'Ò','Ò',[rfReplaceAll]);
Result := StringReplace(Result,'Ó','Ó',[rfReplaceAll]);
Result := StringReplace(Result,'Ô','Ô',[rfReplaceAll]);
Result := StringReplace(Result,'Õ','Õ',[rfReplaceAll]);
Result := StringReplace(Result,'Ö','Ö',[rfReplaceAll]);
Result := StringReplace(Result,'×','×',[rfReplaceAll]);
Result := StringReplace(Result,'Ø','Ø',[rfReplaceAll]);
Result := StringReplace(Result,'Ù','Ù',[rfReplaceAll]);
Result := StringReplace(Result,'Ú','Ú',[rfReplaceAll]);
Result := StringReplace(Result,'Û','Û',[rfReplaceAll]);
Result := StringReplace(Result,'Ü','Ü',[rfReplaceAll]);
Result := StringReplace(Result,'Ý','Ý',[rfReplaceAll]);
Result := StringReplace(Result,'Þ','Þ',[rfReplaceAll]);
Result := StringReplace(Result,'ß','ß',[rfReplaceAll]);
Result := StringReplace(Result,'à','à',[rfReplaceAll]);
Result := StringReplace(Result,'á','á',[rfReplaceAll]);
Result := StringReplace(Result,'â','â',[rfReplaceAll]);
Result := StringReplace(Result,'ã','ã',[rfReplaceAll]);
Result := StringReplace(Result,'ä','ä',[rfReplaceAll]);
Result := StringReplace(Result,'å','å',[rfReplaceAll]);
Result := StringReplace(Result,'æ','æ',[rfReplaceAll]);
Result := StringReplace(Result,'ç','ç',[rfReplaceAll]);
Result := StringReplace(Result,'è','è',[rfReplaceAll]);
Result := StringReplace(Result,'é','é',[rfReplaceAll]);
Result := StringReplace(Result,'ê','ê',[rfReplaceAll]);
Result := StringReplace(Result,'ë','ë',[rfReplaceAll]);
Result := StringReplace(Result,'ì','ì',[rfReplaceAll]);
Result := StringReplace(Result,'í','í',[rfReplaceAll]);
Result := StringReplace(Result,'î','î',[rfReplaceAll]);
Result := StringReplace(Result,'ï','ï',[rfReplaceAll]);
Result := StringReplace(Result,'ð','ð',[rfReplaceAll]);
Result := StringReplace(Result,'ñ','ñ',[rfReplaceAll]);
Result := StringReplace(Result,'ò','ò',[rfReplaceAll]);
Result := StringReplace(Result,'ó','ó',[rfReplaceAll]);
Result := StringReplace(Result,'ô','ô',[rfReplaceAll]);
Result := StringReplace(Result,'õ','õ',[rfReplaceAll]);
Result := StringReplace(Result,'ö','ö',[rfReplaceAll]);
Result := StringReplace(Result,'÷','÷',[rfReplaceAll]);
Result := StringReplace(Result,'ø','ø',[rfReplaceAll]);
Result := StringReplace(Result,'ù','ù',[rfReplaceAll]);
Result := StringReplace(Result,'ú','ú',[rfReplaceAll]);
Result := StringReplace(Result,'û','û',[rfReplaceAll]);
Result := StringReplace(Result,'ü','ü',[rfReplaceAll]);
Result := StringReplace(Result,'ý','ý',[rfReplaceAll]);
Result := StringReplace(Result,'þ','þ',[rfReplaceAll]);
Result := StringReplace(Result,'ÿ','ÿ',[rfReplaceAll]);
end;
==========================
John
Sent via Deja.com http://www.deja.com/
Before you buy.