SQL中不存在的特殊字符如何处理?

How to handle a special character that does not exist in SQL?

因此使用 CHAR(x) 函数您可以显示特殊字符。我有一些导入的数据显示为“?”或 CHAR(63) / ASCII 代码 63 - 这是不正确的,我认为 SQL 在无法识别实际字符时将此字符放入

select colA, colB,

  patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB) as [Position],
  substring(colB,patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB),1) as [InvalidCharacter],
  ascii(substring(colB,patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB),1)) as [ASCIICode]
from  mytable
where patindex('%[^ !-~]%' COLLATE Latin1_General_BIN,colB) >0

所以经过一番挖掘,我发现数据中的实际字符是“拉丁小连字 FL”字符,本质上只是字母“fl”作为一个字符。

我正在努力替换它,因为 SQL.

中没有此字符的 CHAR(xx) 代码

编辑 - 另外 - 只是为了添加上下文 - 数据来自网络资源并且以某种方式显示这个 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')