一直困惑我的问题,字符串中,空格,tab符,回车符,换行符,区别如何看来来呀.为何select 出来,显示都一样呀?select '| '+char(13)+' |'
select '| '+char(10)+' |'
select '| '+char(13)+char(10)+' |'
select '| '+char(32)+' |'
select '| '+'A'+' |'
select '| '+char(9)+' |'
select '| '+'abcd'+' |'
ascii码,
13对应的是回车,
10是换行,
9是tab符,
32是空格,为何这些字符显示都一样呀.
如果这些字符夹在字符串中,如何知道是什么字符呀?
select '| '+char(10)+' |'
select '| '+char(13)+char(10)+' |'
select '| '+char(32)+' |'
select '| '+'A'+' |'
select '| '+char(9)+' |'
select '| '+'abcd'+' |'
ascii码,
13对应的是回车,
10是换行,
9是tab符,
32是空格,为何这些字符显示都一样呀.
如果这些字符夹在字符串中,如何知道是什么字符呀?
你ascii()就明白了.
你ascii()就明白了.
---------------
可见字符可以 ascii,如
select ascii('A')但是tab,回车,换行,都是控制字符呀,如果用ascii()函数查询一个字符对应的ascii吗,那么字符处如何写呢?
--' ',' '的,回车,换行的测试不了.
create table tb (id int , col varchar(10))
insert into tb values(1,' ')
insert into tb values(2,' ')
goselect id , ascii(col) col from tbdrop table tb/*
id col
----------- -----------
1 32
2 9(2 行受影响)
*/
换行符是ascii码对应为 10 的字符create table tb (id int , col varchar(10))
--空格
insert into tb values(1,' ')
--tab符
insert into tb values(2,' ')
--回车符
insert into tb values(3,'
')goselect id , ascii(col) col from tb
/*
id col
----------- -----------
1 32
2 9
3 13 (所影响的行数为 3 行)
*/
print '回车:|'+@str+'|'set @str=char(10)
print '换行:|'+@str+'|'set @str=char(9)
print 'tab符:|'+@str+'|'set @str=char(161)
print '全角空格:|'+@str+'|'set @str=char(32)
print '半角空格:|'+@str+'|'/*
回车:|
|
换行:|
|
tab符:| |
全角空格:||
半角空格:| |
*/
本来的回车是回到当前的行的最前面
换行就是换一个新行但是在新行的列位和原来的列位一样好像在wins中回车系统自动的就\r\n了,所以你测试的效果差不多,看不出来
楼主可以 到unix 或mac机上试试看
select tab=ascii(' ')
select space=ascii(' ')
只有放到前台程序里去用编码范围做检测.看一下ascii表就知道了. 太多了.都是你看不到的.