为什么从 varchar 转换为 varbinary 添加询问“?” SQL 服务器
Why converting from varchar to varbinary add an interrogation "?" SQL Server
我正在尝试将此字符串转换为 varbinary
SQL 服务器:
select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>')
它 returns 这个:
0x3C48323E556E2074697472653C2F48323E3C494E5055542076616C75653D22736F6D6520746578747265223E203C494E5055542069643D706172616D3020747970653D68696464656E2076616C75653D313033313E203C494E5055542069643D6578616D3020747970653D68696464656E2076616C75653D31343731313E
出于另一个原因,我想从 varbinary
转换为 varchar
,我得到了这个结果:
?<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>
我不想要“?”在结果中。
为什么SQL服务器记录在0x
开头?我怎样才能避免这种情况?
改为这样做。然后它会给你想要的输出。
declare @b varbinary(max)
set @b = 0x3C48323E556E2074697472653C2F48323E3C494E5055542076616C75653D22736F6D6520746578747265223E203C494E5055542069643D706172616D3020747970653D68696464656E2076616C75653D313033313E203C494E5055542069643D6578616D3020747970653D68696464656E2076616C75653D31343731313E
select CAST(@b as varchar(max))
或
declare @b varbinary(max)
set @b = (select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>'))
select CAST(@b as varchar(max))
结果
编辑
如果你想截掉0x那么你需要这样写:
declare @d varbinary(max)
declare @c varbinary(max)
set @c = (select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>'))
select CONVERT(varchar(1000),@c,2)
我正在尝试将此字符串转换为 varbinary
SQL 服务器:
select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>')
它 returns 这个:
0x3C48323E556E2074697472653C2F48323E3C494E5055542076616C75653D22736F6D6520746578747265223E203C494E5055542069643D706172616D3020747970653D68696464656E2076616C75653D313033313E203C494E5055542069643D6578616D3020747970653D68696464656E2076616C75653D31343731313E
出于另一个原因,我想从 varbinary
转换为 varchar
,我得到了这个结果:
?<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>
我不想要“?”在结果中。
为什么SQL服务器记录在0x
开头?我怎样才能避免这种情况?
改为这样做。然后它会给你想要的输出。
declare @b varbinary(max)
set @b = 0x3C48323E556E2074697472653C2F48323E3C494E5055542076616C75653D22736F6D6520746578747265223E203C494E5055542069643D706172616D3020747970653D68696464656E2076616C75653D313033313E203C494E5055542069643D6578616D3020747970653D68696464656E2076616C75653D31343731313E
select CAST(@b as varchar(max))
或
declare @b varbinary(max)
set @b = (select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>'))
select CAST(@b as varchar(max))
结果
编辑
如果你想截掉0x那么你需要这样写:
declare @d varbinary(max)
declare @c varbinary(max)
set @c = (select convert (varbinary(max),'<H2>Un titre</H2><INPUT value="some textre"> <INPUT id=param0 type=hidden value=1031> <INPUT id=exam0 type=hidden value=14711>'))
select CONVERT(varchar(1000),@c,2)