如何解决如何处理SQL中不存在的特殊字符?
因此,使用CHAR(x)函数可以显示特殊字符。我有一些导入的数据,以下显示为“?”或CHAR(63)/ ASCII代码63-这是不正确的,我认为SQL在无法识别实际字符时会将该字符放入
select colA,colB,patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB) as [Position],substring(colB,colB),1) as [InvalidCharacter],ascii(substring(colB,1)) as [ASCIICode]
from mytable
where patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB) >0
因此,经过一番挖掘,我发现数据中的实际字符是“拉丁文小连字FL”字符,实际上只是一个字母“ fl”。
尽管如此,我仍在努力替换它,因为在SQL中此字符没有CHAR(xx)代码。
编辑-另外-只是为了添加上下文-数据来自Web来源,并以某种方式显示此fl字符,我要做的就是用实际的“ fl”字符替换此字符! -这是要插入到应用中,并且不能以CSV格式正确显示一次(尽管我的网格实际上很好地显示了“ fl”字符)。
有什么建议吗?
谢谢!
解决方法
因此,经过大量的努力,终于设法弄清了这一点。
SELECT colb from mytable
where colb like N'%fl%' COLLATE Latin1_General_BIN2
给我我需要更改的数据。然后在替换中执行此操作即可得到
REPLACE(colb COLLATE Latin1_General_BIN2,N'fl',N'fl')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。