当前位置: 代码迷 >> Sql Server >> 利用 XML 实现 BASE64 编码和解码解决方法
  详细解决方案

利用 XML 实现 BASE64 编码和解码解决方法

热度:807   发布时间:2016-04-27 17:04:50.0
利用 XML 实现 BASE64 编码和解码
SQL code
--=================================================---- 巧用 XML 实现 BASE64 编码和解码---- 原理: 利用 XML / BINARY BASE64 的存储特性---- 字符集: 本机字符集使用 varchar-- UCS2:   使用 nvarchar-- UTF-8:  自定义 UTF-8/UCS2 之间字节流互转的函数---- SQLCenter-- 2010-09-14----=================================================------------------- BASE64 编码 -------------------declare @str varchar(max), @x xmlset @str = '编码-SQLCenter'-- 1. FOR XML ROWset @x = (select convert(varbinary(max), @str) as b for xml raw, BINARY BASE64) -- 这里大写醒目一点select [str] = @str, [xml] = @x, encode = @x.value('([email protected])[1]', 'varchar(max)')/*str             xml                               encode--------------- --------------------------------- ---------------------编码-SQLCenter  <row b="seDC6y1TUUxDZW50ZXI=" />  seDC6y1TUUxDZW50ZXI=*/-- 2. FOR XML PATHset @x = (select b from (select convert(varbinary(max), @str) as b) t for xml path(''))select [str] = @str, [xml] = @x, encode = @x.value('(b)[1]', 'varchar(max)')/*str             xml                          encode--------------- ---------------------------- ---------------------编码-SQLCenter  <b>seDC6y1TUUxDZW50ZXI=</b>  seDC6y1TUUxDZW50ZXI=*/go------------------- BASE64 解码 -------------------declare @base64 varchar(max), @x xmlset @base64 = 'veLC6y1TUUxDZW50ZXI='set @x = '<b>' + @base64 + '</b>'select [base64] = @base64, [xml] = @x, decode = convert(varchar(max), @x.value('(b)[1]', 'varbinary(max)'))/*base64                xml                          decode--------------------- ---------------------------- ---------------veLC6y1TUUxDZW50ZXI=  <b>veLC6y1TUUxDZW50ZXI=</b>  解码-SQLCenter*/go


------解决方案--------------------
UP......
------解决方案--------------------
学习.
------解决方案--------------------
学习.
------解决方案--------------------
学习,帮顶,蹭分。
------解决方案--------------------
8错,赞一记!

顺便,自定义 UTF-8/UCS2 之间字节流互转的函数可参考这里:
http://topic.csdn.net/u/20100720/14/3ad225ec-f731-43c8-9730-149e82bd9186.html
呵呵~~

------解决方案--------------------
不懂,学习,帮顶,蹭分。
------解决方案--------------------
不太明白。。
------解决方案--------------------
鼓励多多研究这些没用的奇技淫巧

------解决方案--------------------
学习 学习
------解决方案--------------------
学习 学习
------解决方案--------------------

------解决方案--------------------
赞,别出心裁
------解决方案--------------------
恩 不错的东西 加油哦
------解决方案--------------------
需要研究一下,不懂
------解决方案--------------------
学习了。....
------解决方案--------------------
学习了
------解决方案--------------------
顶完再学习
------解决方案--------------------
  相关解决方案