首页 > 代码库 > 用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两种编码