Sql 为什么这些是字符串末尾的问号

Sql 为什么这些是字符串末尾的问号,sql,sql-server,sql-convert,Sql,Sql Server,Sql Convert,我想得到一个字符串,如[www.myweb.com?q=id%3D123456%26action%3Dgo​] 但实际上我得到了[www.myweb.com?q=id%3D123456%26动作%3Dgo?​] 它以一个问号结束 我的数据引擎是SQL server 2012 declare @id bigint; set @id=123456; select 'www.myweb.com?q=id%3D'+convert(varchar(20),@id) +'%26action%3Dgo​'

我想得到一个字符串,如[
www.myweb.com?q=id%3D123456%26action%3Dgo
​]

但实际上我得到了[
www.myweb.com?q=id%3D123456%26动作%3Dgo?
​]

它以一个问号结束

我的数据引擎是SQL server 2012

declare @id bigint;
set @id=123456;

select 
'www.myweb.com?q=id%3D'+convert(varchar(20),@id) +'%26action%3Dgo​' 

如果您检查 通过粘贴

 'www.myweb.com?q=id%3D'+convert(varchar(20),@id) +'%26action%3go​'
在sql server查询窗口中,您可以看到运行查询的go和
删除之间的非dsplay字符。问号将消失


空格或非显示字符不确定它是否真的是空格。@xQbert ya你是对的一些非显示字符..不是空格:),更新了答案即使没有空格我也得到了
。go和?之间也没有空格。@Fireblade我没有看到我附加的图片并将上面的代码粘贴到记事本上。将光标放在D之间和g在靠近%3Dgo的末端。现在按一下向右箭头键。转到g和o之间?再次向右箭头…o和“…再次应该是向右箭头”现在对吗?但它不是…再次向右箭头…现在它是…你有一个隐藏字符需要删除。删除并重新键入
%3Dgo'
你的计划有效,谢谢很多!出现
是因为它包含一个字符。虽然文本编辑器支持该字符,但SQL中的默认字符排序/编码不支持该字符。
是“无效”的替代字符数据。使用自然字符串文本--
N'www.myweb…go'
--将允许SQL支持它。只要确保接受@sachu响应。他让你走上了正确的轨道,我只是澄清了他的答案。乔纳森·洛诺夫斯基解释了为什么!@xQbert和乔纳森·洛诺夫斯基做得很好。我也学到了一些新东西。