用CLR函数把HTMLCode转换为原字符

1. HTMLCode格式

2. 转换方法

3. 部署方法

4. 调用方法

[@more@]

1. HTMLCoding格式

因为安全方面的原因,网页提交html特殊字符例如,', "等和汉字时,常常被编码为HTMLCode格式。

例如:

[ ' ] - ’
[ " ] - ”
[ < ] - <
[ > ] - >
[中国] - & #20013;& #22269;

C#引用System.Web.dll,调用HttpUtility.HtmlDecode转换成原文。

具体:

  • VS.net建立Database项目而不是CLR项目,否则,不能Reference System.Web.dll到项目中;
  • 创建CLR Funcation,调用 HttpUtility.HtmlDecode转换成原文;
  • 项目属性/SQLCLR页中把Target Framework调整为.NET Framework 2.0。用VS.net 2010缺省为 Framework 4.0。高版本导致创建Assembly到数据库是报错。

3. 部署方法

3.1 创建Assembly

  • 于自己的项目中引用了System.Web.dll,所以必须先创建对应的Assembly.

create assembly [System.Web]

from 'C:WindowsMicrosoft.NETFramework64v2.0.50727System.Web.dll' --'C:WindowsMicrosoft.NETFrameworkv2.0.50727System.Web.dll'

with permission_set = unsafe

/*

1. 如果部署在sql 2008 R2 64位上,注意要选择64位System.Web.dll。
2.
permission_set 要置为 unsafe。

*/

  • 再建立自己项目对应的Assembly

CREATE ASSEMBLY CLRAssembly

AUTHORIZATION dbo

FROM 'D:SqlServerCLR.dll'

--WITH PERMISSION_SET = EXTERNAL_ACCESS

GO

  • 创建函数
create function dbo.ufn_HtmlDecode(@UniBinary nvarchar(max))returns nvarchar(max)asexternal name CLRAssembly.HtmlCode.ufn_HtmlDecodgo;

4. 调用方法

declare @x nvarchar(max) = N'& #20013;& #22269;'
select dbo.ufn_HtmlDecode(@x)

5. 其他

NCHAR()

函数可以把单个unicode编码转化为字符,例如select NCHAR('20013')。

UNICODE()

对应的函数是UNICODE,把字符转化成unicode编码,例如select UNICODE(N'中')

参考:

http://social.msdn.microsoft.com/Forums/en-US/sqlnetfx/thread/b65a22bd-ab03-494d-8b40-e903c4b5e963
http://msdn.microsoft.com/en-us/library/a2a4yykt(v=vs.100).aspx

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/66009/viewspace-1059464/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/66009/viewspace-1059464/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值