首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2012-01-18 
利用 XML 实现 BASE64 编码和解码SQL code------ 巧用

利用 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('(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


[解决办法]
UP......
[解决办法]
学习.
[解决办法]
学习.
[解决办法]
学习,帮顶,蹭分。
[解决办法]
8错,赞一记!

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

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

[解决办法]
学习 学习
[解决办法]
学习 学习
[解决办法]

[解决办法]
赞,别出心裁
[解决办法]
恩 不错的东西 加油哦
[解决办法]
需要研究一下,不懂
[解决办法]
学习了。....
[解决办法]
学习了
[解决办法]
顶完再学习
[解决办法]


好东西 帮顶 一直想写一个sql的终于有人写了
[解决办法]
问一下 有支持2000的吗
[解决办法]

[解决办法]
为了那分数 下东西
[解决办法]
平时用sql2000多些,对xml不是很懂,哪位哥哥愿提供下学习xml的资料.谢谢哈
[解决办法]
真不错,有帮助
[解决办法]
每天回帖即可获得10分可用分!
[解决办法]
OK
.....
[解决办法]
牛!!
[解决办法]
路过,贴个C#的编码解码

C# code
  //编码输入的字符串        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 !!!
[解决办法]
没看懂。。。。。。。。
[解决办法]
好的
谢谢
[解决办法]
高手。
[解决办法]

探讨
SQL code
--=================================================
--
-- 巧用 XML 实现 BASE64 编码和解码
--
-- 原理: 利用 XML / BINARY BASE64 的存储特性
--
-- 字符集: 本机字符集使用 varchar
-- UCS2: 使用 nvarchar
-- UTF-8: 自定义 UTF-8……

[解决办法]
暂时不懂...
[解决办法]
有些东西不是没得用,在特殊需求的时候 那是必须的
没有研究 也蹭点分先
[解决办法]
学习下~
[解决办法]
这个用什么地方?不是很懂啊!
[解决办法]
学习一下,谢谢分享
[解决办法]
学习.
[解决办法]
学习。

[解决办法]

UPUP
[解决办法]
学习 学习
[解决办法]
学习,帮顶,蹭分。
[解决办法]
探讨
路过,贴个C#的编码解码

C# code

//编码输入的字符串
private static string EncodeString(string source)
{
byte[] bytes = System.Text.Encoding.UTF8.GetBytes(source);
for (……

热点排行