首页 > 代码库 > 用SQL Server的CAST()函数获得GB2312和UTF8两种编码

用SQL Server的CAST()函数获得GB2312和UTF8两种编码

CAST()函数的参数类型变化,为中文返回两种不同的编码:

SELECT CAST(‘汉字‘ AS VARBINARY) AS [GB2312];   

       --相当于 CAST(CAST(N‘汉字‘ AS   VARCHAR(4)) AS VARBINARY)

SELECT CAST(N‘汉字‘ AS VARBINARY) AS [UTF-8];    

        --相当于 CAST(CAST(N‘汉字‘ AS NVARCHAR(2)) AS VARBINARY)

 

返回结果(二进制类型):

GB2312
0xBABAD7D6

UTF-8
0x496C575B

通过master.sys.fn_varbintohexsubstring()函数能得到相应的十六进制编码。如:

SELECT master.sys.fn_varbintohexsubstring(0, 0xBABAD7D6 ,1,0) AS [GB2312] --返回字符串:BABAD7D6

SELECT master.sys.fn_varbintohexsubstring(0, 0x496C575B,  1,0) AS [UTF-8]    --返回字符串:496C575B

 

备注:

master.sys.fn_varbintohexstr()函数和 master.sys.fn_varbintohexsubstring() 只能转换不大于2,147,483,647( int 类型)的二进制数,参见:http://www.cnblogs.com/gaizai/p/4001016.html

用SQL Server的CAST()函数获得GB2312和UTF8两种编码