You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server 2019 Unicode符号替换按字符位置失效问题咨询

问题根因

该问题由Latin1_General_100_CI_AI_SC排序规则的字符匹配逻辑导致:

  1. 测试用的⚶符号(Unicode码位U+26B6)在该排序规则的模糊匹配逻辑下,会被判定为依附于前导字符的关联类字符,当它出现在普通字符之后时,会和前导字符被识别为同一个排序单元,单独匹配⚶时无法命中。
  2. 之前测试正常的☋符号(Unicode码位U+260B)属于独立符号类字符,无论出现在什么位置都会被判定为独立匹配单元,因此替换不受位置影响。
  3. 你观察到的“仅首位可替换”现象,是因为符号位于字符串首位时没有前导字符可关联,会被判定为独立单元,匹配逻辑可以正常命中。

解决方案

针对Unicode符号替换场景,直接使用二进制排序规则执行匹配即可,二进制排序规则完全基于字符码位精确匹配,不会受排序规则的模糊归类逻辑影响:

-- 采用推荐的Latin1_General_100_BIN2二进制排序规则,全位置字符均可正常替换
select replace(N'⚶a' collate Latin1_General_100_BIN2, N'⚶' collate Latin1_General_100_BIN2, N'XXX')
select replace(N'a⚶' collate Latin1_General_100_BIN2, N'⚶' collate Latin1_General_100_BIN2, N'XXX')

执行后输出预期结果:

XXXa
aXXX

内容的提问来源于stack exchange,提问作者Geo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 01:54:03