利用 XML 实现 BASE64 编码和解码
--=================================================---- 巧用 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('(row/@b)[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
好东西 帮顶 一直想写一个sql的终于有人写了
[解决办法]
问一下 有支持2000的吗
[解决办法]
[解决办法]
为了那分数 下东西
[解决办法]
平时用sql2000多些,对xml不是很懂,哪位哥哥愿提供下学习xml的资料.谢谢哈
[解决办法]
真不错,有帮助
[解决办法]
每天回帖即可获得10分可用分!
[解决办法]
OK
.....
[解决办法]
牛!!
[解决办法]
路过,贴个C#的编码解码
//编码输入的字符串 private static string EncodeString(string source) { byte[] bytes = System.Text.Encoding.UTF8.GetBytes(source); for (int i = 0; i < bytes.Length; i++) { bytes[i] ^= (byte)(i & 0x0095); } return Convert.ToBase64String(bytes); } //解码传入的字符串 private static string DecodeString(string source) { byte[] bytes = Convert.FromBase64String(source); for (int i = 0; i < bytes.Length; i++) { bytes[i] ^= (byte)(i & 0x0095); } return System.Text.Encoding.UTF8.GetString(bytes); }
[解决办法]
哈哈:学习啦!
[解决办法]
不太明白。。
[解决办法]
帮顶,标记~~
[解决办法]
太难 看不懂
[解决办法]
好难啊,看不懂~~
[解决办法]
学习了,很好的材料
[解决办法]
技巧。学习。
[解决办法]
技巧。学习。
[解决办法]
nice~
up
[解决办法]
内容存入剪贴板
[解决办法]
学到了很多。。。
[解决办法]
比较强
[解决办法]
[解决办法]
[解决办法]
[解决办法]
太深了...
[解决办法]
Sign
[解决办法]
新手入门学习
[解决办法]
每天回帖即可获得10分可用分!是边样吗
------解决方案--------------------
没看懂呀。。。。。
[解决办法]
look it !!!
[解决办法]
没看懂。。。。。。。。
[解决办法]
好的
谢谢
[解决办法]
高手。
[解决办法]