在网上找了不少htmlEncode例子,当然httpapp自带的太弱了,只有这个代码http://www.sharejs.com/codes/delphi/2264跟我的要求相近,不过对含中文的html进行编码就不对了。
现真对这个进行改进。
function MakeSafeHTMLText2(TheText: widestring): string;
var
Idx: Integer; // loops thru characters of TheText
Ch: wideChar; // each charactor in TheText
begin
Result := '';
for Idx := 1 to Length(TheText) do
begin
Ch := TheText[Idx];
case Ch of
'<': Result := Result + '<';
'>': Result := Result + '>';
'&': Result := Result + '&';
'"': Result := Result + '"';
else
begin
if (Ch < #32) or (Ch >= #127) then
// Result := Result + '&#' + IntToStr(Ord(Ch)) + ';'
Result := Result + '&#x' + InttoHex(Integer(ch),2) + ';'
else
Result := Result + Ch;
end;
end;
end;
end;
有不足的地方,欢迎指正。