declare @s varchar(50)
declare @s1 varchar(50)
set @s=char(137)+char(76)
set @s1=char(137)
set @s1=@s1+char(76)
print @s --这里输出一个像莹字一样的乱码
print @s1 --而这里却输出一个L
上面的输出为什么不同,另,我要用@x=@x+char(y)的方式达到输出@s的效果,怎样弄?
declare @s1 varchar(50)
set @s=char(137)+char(76)
set @s1=char(137)
set @s1=@s1+char(76)
print @s --这里输出一个像莹字一样的乱码
print @s1 --而这里却输出一个L
上面的输出为什么不同,另,我要用@x=@x+char(y)的方式达到输出@s的效果,怎样弄?
declare @s1 varchar(50)
set @s=''
set @s=@s+char(137)+char(76)
set @s1=char(137)
set @s1=@s1+char(76)
print @s --这里输出一个像莹字一样的乱码
print @s1 --此处也是莹字
-----
塋
塋
char其实不只是这个作用
楼上的,你的是数据库是什么版本的,是sql2000的吗?如果不是的话,你可以换sql2000试一试 我是用的sql2005
我在sql server 2008r2执行竟然都返回NULL,我把我的sql server 2008r2的数据库的兼容性调成了2000的,把代码修改了一下,就可以正常显示了:declare @s nvarchar(50)
declare @s1 nvarchar(50)set @s=nchar(137)+nchar(76)
set @s1=nchar(137)
set @s1=@s1+nchar(76)--网上查了一下,char(137)是 ‰,修改为nchar(137)后显示为‰L ,复制出来就成L了。print @s --这里输出一个像莹字一样的乱码
print @s1 --而这里却输出一个L/*
L
L
*/