Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Html Encode

474 views
Skip to first unread message

Gabriel

unread,
Jun 27, 2000, 3:00:00 AM6/27/00
to
hi,

Have Delphi a routine that encodes latin characters like é,ç to
corresponding é &atilde (HTTPEncode seems geared to forms)

thanks

Ronaldo Melo Ferraz

unread,
Jun 27, 2000, 3:00:00 AM6/27/00
to
It's rather simple to create a function to do that. It's just a matter of
looping through the string looking for special characters. When the
characters doesn't need conversion, just copy it to the output, else copy
its translation. For a list of special characters (or entities), see
http://www.w3c.org/.

Ronaldo

Gabriel <no@no> wrote in message
news:1a8hls8hbio730sf0...@4ax.com...

Peter Strand

unread,
Jun 27, 2000, 3:00:00 AM6/27/00
to

"Gabriel" <no@no> wrote in message
news:1a8hls8hbio730sf0...@4ax.com...
> hi,

>
> Have Delphi a routine that encodes latin characters like é,ç to
> corresponding &eacute; &atilde (HTTPEncode seems geared to forms)
>
> thanks

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;

David Mulligan

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Try - HTTPEncode

Converts a string into a form that contains no values that are illegal in an
HTTP message header.

David Mulligan
iDOiNK

David Mulligan

unread,
Jun 28, 2000, 3:00:00 AM6/28/00
to
Try - HTTPDecode (The other way)


Decodes a string that includes HTTP escape characters.

David Mulligan
iDOiNK


"David Mulligan" <david.m...@idoink.com> wrote in message
news:395a1dd4@dnews...

jcoo...@my-deja.com

unread,
Jul 7, 2000, 3:00:00 AM7/7/00
to
In article <3958f6cc@dnews>,

"Ronaldo Melo Ferraz" <NsOhSe...@taskmail.com.br> wrote:
> It's rather simple to create a function to do that. It's just a
matter of
> looping through the string looking for special characters. When the
> characters doesn't need conversion, just copy it to the output, else
copy
> its translation. For a list of special characters (or entities), see
> http://www.w3c.org/.
>
> Ronaldo
>
> Gabriel <no@no> wrote in message
> news:1a8hls8hbio730sf0...@4ax.com...
> > Have Delphi a routine that encodes latin characters like é,ç to
> > corresponding &eacute; &atilde (HTTPEncode seems geared to forms)

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,'"','&quot;',[rfReplaceAll]);
Result := StringReplace(Result,'&','&amp;',[rfReplaceAll]);
Result := StringReplace(Result,'<','&lt;',[rfReplaceAll]);
Result := StringReplace(Result,'>','&gt;',[rfReplaceAll]);
Result := StringReplace(Result,' ','&nbsp;',[rfReplaceAll]);
Result := StringReplace(Result,'¡','&iexcl;',[rfReplaceAll]);
Result := StringReplace(Result,'¢','&cent;',[rfReplaceAll]);
Result := StringReplace(Result,'£','&pound;',[rfReplaceAll]);
Result := StringReplace(Result,'¤','&curren;',[rfReplaceAll]);
Result := StringReplace(Result,'¥','&yen;',[rfReplaceAll]);
Result := StringReplace(Result,'¦','&brvbar;',[rfReplaceAll]);
Result := StringReplace(Result,'§','&sect;',[rfReplaceAll]);
Result := StringReplace(Result,'¨','&uml;',[rfReplaceAll]);
Result := StringReplace(Result,'©','&copy;',[rfReplaceAll]);
Result := StringReplace(Result,'ª','&ordf;',[rfReplaceAll]);
Result := StringReplace(Result,'«','&laquo;',[rfReplaceAll]);
Result := StringReplace(Result,'¬','&not;',[rfReplaceAll]);
Result := StringReplace(Result,'­','&shy;',[rfReplaceAll]);
Result := StringReplace(Result,'®','&reg;',[rfReplaceAll]);
Result := StringReplace(Result,'¯','&macr;',[rfReplaceAll]);
Result := StringReplace(Result,'°','&deg;',[rfReplaceAll]);
Result := StringReplace(Result,'±','&plusmn;',[rfReplaceAll]);
Result := StringReplace(Result,'²','&sup2;',[rfReplaceAll]);
Result := StringReplace(Result,'³','&sup3;',[rfReplaceAll]);
Result := StringReplace(Result,'´','&acute;',[rfReplaceAll]);
Result := StringReplace(Result,'µ','&micro;',[rfReplaceAll]);
Result := StringReplace(Result,'¶','&para;',[rfReplaceAll]);
Result := StringReplace(Result,'·','&middot;',[rfReplaceAll]);
Result := StringReplace(Result,'¸','&cedil;',[rfReplaceAll]);
Result := StringReplace(Result,'¹','&sup1;',[rfReplaceAll]);
Result := StringReplace(Result,'º','&ordm;',[rfReplaceAll]);
Result := StringReplace(Result,'»','&raquo;',[rfReplaceAll]);
Result := StringReplace(Result,'¼','&frac14;',[rfReplaceAll]);
Result := StringReplace(Result,'½','&frac12;',[rfReplaceAll]);
Result := StringReplace(Result,'¾','&frac34;',[rfReplaceAll]);
Result := StringReplace(Result,'¿','&iquest;',[rfReplaceAll]);
Result := StringReplace(Result,'À','&Agrave;',[rfReplaceAll]);
Result := StringReplace(Result,'Á','&Aacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Â','&Acirc;',[rfReplaceAll]);
Result := StringReplace(Result,'Ã','&Atilde;',[rfReplaceAll]);
Result := StringReplace(Result,'Ä','&Auml;',[rfReplaceAll]);
Result := StringReplace(Result,'Å','&Aring;',[rfReplaceAll]);
Result := StringReplace(Result,'Æ','&AElig;',[rfReplaceAll]);
Result := StringReplace(Result,'Ç','&Ccedil;',[rfReplaceAll]);
Result := StringReplace(Result,'È','&Egrave;',[rfReplaceAll]);
Result := StringReplace(Result,'É','&Eacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Ê','&Ecirc;',[rfReplaceAll]);
Result := StringReplace(Result,'Ë','&Euml;',[rfReplaceAll]);
Result := StringReplace(Result,'Ì','&Igrave;',[rfReplaceAll]);
Result := StringReplace(Result,'Í','&Iacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Î','&Icirc;',[rfReplaceAll]);
Result := StringReplace(Result,'Ï','&Iuml;',[rfReplaceAll]);
Result := StringReplace(Result,'Ð','&ETH;',[rfReplaceAll]);
Result := StringReplace(Result,'Ñ','&Ntilde;',[rfReplaceAll]);
Result := StringReplace(Result,'Ò','&Ograve;',[rfReplaceAll]);
Result := StringReplace(Result,'Ó','&Oacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Ô','&Ocirc;',[rfReplaceAll]);
Result := StringReplace(Result,'Õ','&Otilde;',[rfReplaceAll]);
Result := StringReplace(Result,'Ö','&Ouml;',[rfReplaceAll]);
Result := StringReplace(Result,'×','&times;',[rfReplaceAll]);
Result := StringReplace(Result,'Ø','&Oslash;',[rfReplaceAll]);
Result := StringReplace(Result,'Ù','&Ugrave;',[rfReplaceAll]);
Result := StringReplace(Result,'Ú','&Uacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Û','&Ucirc;',[rfReplaceAll]);
Result := StringReplace(Result,'Ü','&Uuml;',[rfReplaceAll]);
Result := StringReplace(Result,'Ý','&Yacute;',[rfReplaceAll]);
Result := StringReplace(Result,'Þ','&THORN;',[rfReplaceAll]);
Result := StringReplace(Result,'ß','&szlig;',[rfReplaceAll]);
Result := StringReplace(Result,'à','&agrave;',[rfReplaceAll]);
Result := StringReplace(Result,'á','&aacute;',[rfReplaceAll]);
Result := StringReplace(Result,'â','&acirc;',[rfReplaceAll]);
Result := StringReplace(Result,'ã','&atilde;',[rfReplaceAll]);
Result := StringReplace(Result,'ä','&auml;',[rfReplaceAll]);
Result := StringReplace(Result,'å','&aring;',[rfReplaceAll]);
Result := StringReplace(Result,'æ','&aelig;',[rfReplaceAll]);
Result := StringReplace(Result,'ç','&ccedil;',[rfReplaceAll]);
Result := StringReplace(Result,'è','&egrave;',[rfReplaceAll]);
Result := StringReplace(Result,'é','&eacute;',[rfReplaceAll]);
Result := StringReplace(Result,'ê','&ecirc;',[rfReplaceAll]);
Result := StringReplace(Result,'ë','&euml;',[rfReplaceAll]);
Result := StringReplace(Result,'ì','&igrave;',[rfReplaceAll]);
Result := StringReplace(Result,'í','&iacute;',[rfReplaceAll]);
Result := StringReplace(Result,'î','&icirc;',[rfReplaceAll]);
Result := StringReplace(Result,'ï','&iuml;',[rfReplaceAll]);
Result := StringReplace(Result,'ð','&eth;',[rfReplaceAll]);
Result := StringReplace(Result,'ñ','&ntilde;',[rfReplaceAll]);
Result := StringReplace(Result,'ò','&ograve;',[rfReplaceAll]);
Result := StringReplace(Result,'ó','&oacute;',[rfReplaceAll]);
Result := StringReplace(Result,'ô','&ocirc;',[rfReplaceAll]);
Result := StringReplace(Result,'õ','&otilde;',[rfReplaceAll]);
Result := StringReplace(Result,'ö','&ouml;',[rfReplaceAll]);
Result := StringReplace(Result,'÷','&divide;',[rfReplaceAll]);
Result := StringReplace(Result,'ø','&oslash;',[rfReplaceAll]);
Result := StringReplace(Result,'ù','&ugrave;',[rfReplaceAll]);
Result := StringReplace(Result,'ú','&uacute;',[rfReplaceAll]);
Result := StringReplace(Result,'û','&ucirc;',[rfReplaceAll]);
Result := StringReplace(Result,'ü','&uuml;',[rfReplaceAll]);
Result := StringReplace(Result,'ý','&yacute;',[rfReplaceAll]);
Result := StringReplace(Result,'þ','&thorn;',[rfReplaceAll]);
Result := StringReplace(Result,'ÿ','&yuml;',[rfReplaceAll]);
end;

==========================

John


Sent via Deja.com http://www.deja.com/
Before you buy.

0 new messages