提问人:Josy Sclei 提问时间:11/17/2023 最后编辑:Josy Sclei 更新时间:11/17/2023 访问量:73
在 SQL Server 上保存拉丁字符时出现问题
Issue saving Latin characters on SQL Server
问:
使用 Latin_General_CI_AS 作为默认排序规则将文本数据保存到 SQL Server 2019 数据库时,我遇到了问题。有问题的列设置为 varchar。当客户端输入像 não
这样的单词时,它会正常保存而不会出现问题,但是如果他复制+粘贴该单词,它会保存为 n~ao
。调试 我发现在复制粘贴而不是使用 unicode 字符“ã”时,它使用组合变音符号“~”加上字母“a”,看起来 varchar 无法处理它。
我已经看到更改为 nvarchar 可能会解决这个问题,但我需要在很多列上执行此操作,除了更改列数据类型之外,还有其他方法可以解决这个问题吗?
答:
2赞
Ben
11/17/2023
#1
将数据类型更改为是解决该问题的一种方法。nvarchar
解决此问题的另一种方法是使用排序规则更改数据库和/或表的设置,例如某些不区分大小写和不区分重音的比较,这些比较可以很好地处理拉丁字符。Latin_General_CI_AI
通常使用,因为它具有比nvarchar
varchar
评论
0赞
Josy Sclei
11/17/2023
忘了补充我们已经在使用Latin_General_CI_AI排序规则
0赞
Ben
11/17/2023
那么我真的认为数据类型是需要的,而不是使用nvarchar
varchar
评论
'não'
'n~ao'
'~'
U+0303
U+007E