显示字符串的十六进制转储
Posted
技术标签:
【中文标题】显示字符串的十六进制转储【英文标题】:Show hexadecimal dump of string 【发布时间】:2011-04-13 15:53:46 【问题描述】:有没有办法在 SQL Server 中获取字符串的十六进制转储?对字符集和排序规则问题进行故障排除会很有用。
在 mysql 中您可以使用 SELECT HEX('€uro')
,在 Oracle 中您可以使用 SELECT DUMP('€uro') FROM DUAL
。
【问题讨论】:
【参考方案1】:SELECT CAST('€uro' AS VARBINARY(4))
返回
0x8075726F
在我的默认排序规则上。
编辑。 刚刚注意到Unicode标签
SELECT CAST(N'€uro' AS VARBINARY(8))
返回
0xAC20750072006F00
【讨论】:
可爱!你知道字节顺序取决于什么吗?挑剔,我更喜欢20AC
而不是AC20
,但无论如何我想确定预期的顺序。
@Álvaro - 不,恐怕我不知道答案。
@Álvaro:这有点邪恶,我想对于使用更高平面 Unicode 字形的字符串可能会失败,但它似乎满足您的字节顺序要求:SELECT SUBSTRING(CAST(CAST (0xFEFF + SUBSTRING(CAST(CAST(@v as XML) as VARBINARY(MAX)),3,DATALENGTH(CAST(@v as XML))-2) AS XML) AS VARBINARY(MAX)),3,DATALENGTH( CAST(@v 作为 XML))-2)以上是关于显示字符串的十六进制转储的主要内容,如果未能解决你的问题,请参考以下文章