不可见字符?

dywanghui2000 2015-11-23 09:10:45
我从excel导入一张表,其中一个字段末尾出现了不可见字符。起初我以为是空格符,但不论是半角替换或是全角替换都不起作用,后来我又试过了换行符、回车符都没用。通过right函数试了一下,结果却显示为'?',而原来字符类型为nvarchar,我又用cast把它转换成varchar再替换,结果末尾又出现了‘?’,请教各位高手到底是什么原因造成这种情况?
...全文
206 点赞 收藏 14
写回复
14 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dywanghui2000 2015-11-25
[/quote]

试试看这句能不能出结果。(表名、列名要改成你的)
select * from table1 where col1 like '%'+NCHAR(179)+'%'

如果能查到结果,就可以update掉了。[/quote]

试过了,没有结果
回复
zbdzjx 2015-11-24
引用 12 楼 dywanghui2000 的回复:
即便是竖线,为什么不可见呢,而且我怎么替换这个字符
试试看这句能不能出结果。(表名、列名要改成你的)
select * from table1 where col1 like '%'+NCHAR(179)+'%'
如果能查到结果,就可以update掉了。
回复
dywanghui2000 2015-11-24
即便是竖线,为什么不可见呢,而且我怎么替换这个字符
回复
zbdzjx 2015-11-24
引用 8 楼 dywanghui2000 的回复:
[quote=引用 7 楼 zbdzjx 的回复:] 用下面的这句执行看看。之前读出来的63,对应的是“?”,应该不是这个吧。
select Ascii(right(field,1))
(无列名) 179 这个179到底是什么字符?[/quote] 上面的好像不对。 用alt+小键盘上输入179,显示的³,是三次方的符号。
回复
zbdzjx 2015-11-24
引用 8 楼 dywanghui2000 的回复:
[quote=引用 7 楼 zbdzjx 的回复:]
用下面的这句执行看看。之前读出来的63,对应的是“?”,应该不是这个吧。
select Ascii(right(field,1))

(无列名)
179
这个179到底是什么字符?[/quote]
是一个竖线。
回复
dywanghui2000 2015-11-24
引用 6 楼 xxfvba 的回复:
直接update可不可以 update T set field=left(field,len(field)-1)
这个可以用的。但我想知道这个空白符到底是什么,避免下次再发生这样的事情。
回复
dywanghui2000 2015-11-24
引用 7 楼 zbdzjx 的回复:
用下面的这句执行看看。之前读出来的63,对应的是“?”,应该不是这个吧。
select Ascii(right(field,1))
(无列名) 179 这个179到底是什么字符?
回复
zbdzjx 2015-11-23
用下面的这句执行看看。之前读出来的63,对应的是“?”,应该不是这个吧。
select Ascii(right(field,1))
回复
xxfvba 2015-11-23
直接update可不可以 update T set field=left(field,len(field)-1)
回复
dywanghui2000 2015-11-23
select Ascii('把不可见的字符复制进去') 看看 Ascii码是多少? 我试了一下,显示为63,应该为'?',可用这个'?'去替换,还显示末尾有空格
回复
wtujedp 2015-11-23
select Ascii('把不可见的字符复制进去') 看看 Ascii码是多少?
回复
Yole 2015-11-23
把excel中的数据粘出来看看。
回复
dywanghui2000 2015-11-23
nvarchar
回复
Yole 2015-11-23
需要确认一下excel中数据是什么类型,是什么样的数据。
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2015-11-23 09:10
社区公告
暂无公告