【问题标题】:Show hexadecimal dump of string显示字符串的十六进制转储
【发布时间】:2011-04-13 15:53:46
【问题描述】:

有没有办法在 SQL Server 中获取字符串的十六进制转储?对字符集和排序规则问题进行故障排除会很有用。

在 MySQL 中您可以使用 SELECT HEX('€uro'),在 Oracle 中您可以使用 SELECT DUMP('€uro') FROM DUAL

【问题讨论】:

    标签: sql-server sql-server-2005 unicode hex


    【解决方案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)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2018-01-31
    • 2017-03-09
    • 2012-08-15
    • 2017-03-22
    • 1970-01-01
    相关资源
    最近更新 更多