连字号 vs 破折号:用连字号替换破折号

8

好的,最近我们遇到了一个问题。

在报告服务中,一些字符串列显示为乱码中文字符。

经过进一步调查,我们发现这是由于破折号导致的。起初我们以为是连字符,但进一步调查后发现是短划线(或者叫 en dash)。实际上,造成这种情况的原因是人们从 Word 复制数据到该列时,Word 会自动将连字符转换为短划线。

但是,如果你查看数据库,它们看起来都一样。不过,在应用程序端你可以看到它们之间的区别。

如何用正常的连字符替换短划线呢?

如果你将值复制粘贴到 SQL Server 中,连字符是灰色的,而短划线是黑色的,但它们看起来完全一样(即大小没有区别)。这就导致我无法编写 REPLACE 脚本(它们长得一模一样)。

有没有办法在 SQL Server 中识别像短划线这样的特殊字符呢?

SQL Server v2005。

1个回答

13

您可以使用NCHAR(8211)表示短横线,或者NCHAR(8212)表示长横线。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接