如何将 nvarchar 解码为文本(SQL Server 2008 R2)?
我有一个带有 nvarchar(4000)
字段的 SQL Server 2008 R2 表。
存储此表的数据类似于
'696D616765206D61726B65643A5472'
或
'303131' ("011")
。
我看到每个字符都编码为十六进制。
我如何从表中读取这些数据?我不想写解码函数,我的意思是存在更简单的方法。
PS 抱歉我的英语。
I have a SQL Server 2008 R2 table with nvarchar(4000)
field.
Data that stores this table look like
'696D616765206D61726B65643A5472'
or
'303131' ("011")
.
I see that each char is encoding to hex.
How can I read those data from table? I don't want write decoding function, I mean that simpler way exists.
P.S. Sorry for my English.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
SQL Server 2008实际上具有内置的十六进制编码和解码功能!
示例(将字符串转换为 VarBinary 时,请注意值为“1”的第三个参数):
参考:http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from- hex-string-to-varbinary-and-vice-versa.aspx
这种方法的优点是您不需要“Exec”调用,您通常会尽量避免这种调用,因为担心注入等事物。缺点是它仅适用于 SQL Server 2008 及更高版本。
SQL Server 2008 actually has a built-in hex-encoding and decoding feature!
Sample (note the third parameter with value "1" when converting your string to VarBinary):
Ref: http://blogs.msdn.com/b/sqltips/archive/2008/07/02/converting-from-hex-string-to-varbinary-and-vice-versa.aspx
The advantage of this approach is that you don't need the "Exec" call, which you generally try to avoid, for fear of injection among other things. The disadvantage is that it only works in SQL Server 2008 and later.
我认为你将需要一个解码函数,最简单的:
You will need a decoding function I think, the simplest: