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
- 创建函数
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/