当我们要处理经过HtmlEncode编码过的字符,可以使用HtmlDeCode来解码,但是Delphi自带的对于UNICODE不支持,就像球 中文是"球",这样就没办法转了,现在改写了HttpApp单位的HtmlDeCode函数。
实际办法其实就是知道UNICODE的编码方式,然后delphi的类型WideString来转换,还是看程序吧
function HTMLDecodeEx(const AStr: String): Widestring; //处理格式转换
var
Sp, Cp, Tp: PChar;
Rp:PWideString;
S: String;
I, Code: Integer;
begin
SetLength(Result, Length(AStr));
Sp := PChar(AStr);
Rp := PWideString(Result);
Cp := Sp;
try
while Sp^ <> #0 do
begin
case Sp^ of
'&': begin
Cp := Sp;
Inc(Sp);
case Sp^ of
'a': if AnsiStrPos(Sp, 'amp;') = Sp then { do not localize }
begin
Inc(Sp,3);
PInteger(Rp)^ := Integer('&');
end;
'l',
'g': if (AnsiStrPos(Sp, 'lt;') = Sp) or (AnsiStrPos(Sp, 'gt;') = Sp) then { do not localize }
begin
Cp := Sp;
Inc(Sp, 2);
while (Sp^ <> ';') and (Sp^ <> #0) do
Inc(Sp);
if Cp^ = 'l' then
PInteger(Rp)^ := Integer('<')
else
PInteger(Rp)^ := Integer('>');
end;
'q': if AnsiStrPos(Sp, 'quot;') = Sp then { do not localize }
begin
Inc(Sp,4);
PInteger(Rp)^ := Integer('"');
end;
'#': begin
Tp := Sp;
Inc(Tp);
while (Sp^ <> ';') and (Sp^ <> #0) do
Inc(Sp);
SetString(S, Tp, Sp - Tp);
Val(S, I, Code);
PInteger(Rp)^ := I;
end;
else
begin
result:='';
exit;
end;
end;
end
else ;
PInteger(Rp)^ := Integer(Sp^);
end;
Inc(PByte(Rp),2);
Inc(Sp);
end;
SetLength(Result, PChar(Rp)-PChar(Result));
except
result:='';
end;
end;
分享到:
相关推荐
### ASP常用函数: HTMLDecode详解 #### 一、引言 在Web开发中,为了确保网页的安全性和兼容性,通常会使用HTML实体编码来转义一些特殊字符。这些特殊字符包括但不限于`, `>`, `&`, `"`等,在HTML文档中如果不进行...
而在这个名为"HtmlDecode.rar"的压缩包中,似乎包含了一个反编译的C#代码,以及用C++重写这两个功能的实现。 `HtmlDecode`方法的作用是将HTML实体转换为其原始字符。例如,"&"会被解码为"&","<"会变成","&...
主要介绍了javascript另类方法实现htmlencode()与htmldecode()函数,结合实例形式分析了javascript字符编码与解码操作的相关技巧,需要的朋友可以参考下
在数据库编程中,字符串操作是一个非常常见的需求,ESQL提供了多种字符串操作函数,以支持数据库应用开发人员在SQL语句中进行字符串处理。 1. 字符串大小写转换 - UPPER或UCASE函数:用于将字符串转换成全部大写...
Delphi中可以使用`String`或`AnsiString`类型来处理HTML文本,通过内置的字符串函数进行文本操作。对于更复杂的HTML解析和生成,可以借助第三方库如HTMLParser或使用.NET Framework中的`System.Net.WebUtility....
‘****************************** ‘函数:HTMLEncode(reString) ‘参数:reString,待编码转换处理的字符串 ‘作者:阿里西西 ‘日期:2007/7/15 ‘描述:对HTML代码进行转换 ‘示例:HTMLEncode(“欢迎访问 ...
3. `htmlencode()` 和 `htmldecode()` 函数: 这两个函数主要用于HTML字符串的编码和解码。`htmlencode()`将字符串中的双引号替换为`"`,小于号替换为`<`,使得字符串可以在HTML页面上正确显示。`...
`HTMLDecode`函数则是对`HTMLEncode`函数的逆操作,主要实现如下: 1. **反转义特殊字符**:将`<`还原为`,将`>`还原为`>`,还原`"`为`"`,还原`'`为`'`,使特殊字符恢复到其原本状态。 2. **处理...
为了扩展`Server.HTMLEncode`的功能,有时候我们会自定义一个`HTMLEncode`函数,不仅编码HTML特殊字符,还处理回车和换行等,以保持原始的文本格式。以下是一个自定义`HTMLEncode`函数的例子: ```vb Function ...
在ASP.NET中,有许多常用的函数,这些函数极大地简化了Web开发的过程,提高了开发效率。以下是对ASP.NET常用函数的详细解释: 1. **Response对象**: - `Response.Write()`:在页面输出指定的字符串或变量,常用于...
下面是对 `HTMLEncode` 和 `HTMLDecode` 函数的解析: ```vbscript Function HTMLEncode(fString) fString = Replace(fString, ">", ">") fString = Replace(fString, ", "<") fString = Replace(fString,...
在提供的压缩包“asp.net 通用函数代码ToolHelper.rar”中,我们可以预期找到一些适用于多种场景的ASP.NET自定义函数,这些函数可能极大地提高了开发效率并简化了常见任务的处理。 `ToolHelper`通常是一个包含各种...
11. **HttpServerUtility.HtmlEncode() 和 HtmlDecode()**:这两个函数用于编码和解码HTML,防止XSS(跨站脚本攻击)。 12. **Page.IsPostBack**:该属性用于判断当前页面是否是由于用户操作导致的回发,常用于初始...
在ASP.NET中,开发者经常会遇到各种各样的编程需求,这些需求可以通过使用内置的函数或方法来实现。ASP.NET提供了一套强大的函数库,使得开发者能够高效地构建动态网页和Web应用程序。以下是一些ASP.NET中常用的函数...
`HtmlDecode`函数完成了这个任务: ```javascript function HtmlDecode(str) { var t = document.createElement("div"); // 创建一个div元素 t.innerHTML = str; // 将编码后的字符串设置到div的innerHTML ...