我在将文本数据保存到 SQL Server 2019 数据库时遇到问题。有问题的列设置为 varchar。当客户输入像
não
这样的单词时,它会正常保存,没有问题,但如果他复制+粘贴该单词,它会保存为 n~ao
。调试我发现,当复制粘贴而不是使用unicode字符“ã”时,它使用组合变音标记“~”加上字母“a”,看起来varchar无法处理它。
我已经看到更改为 nvarchar 可能会解决问题,但我需要在很多列上执行此操作,除了更改列数据类型之外,还有其他方法解决此问题吗?
将数据类型更改为
nvarchar
是解决此问题的一种方法。
解决此问题的另一种方法是通过使用
Latin_General_CI_AI
等排序规则来更改数据库和/或表设置上的设置,以进行某些不区分大小写和不区分重音的比较,这可以很好地处理拉丁字符。
通常使用
nvarchar
,因为它比 varchar
具有更广泛的拉丁字符和其他非 ASCII 字符