Sybase ASE char列和&阿拉伯代码点中的UTF-8

2020-09-15 16:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


注意:此问题是关于Sybase Adaptive Server Enterprise 15.x或16的。我不确定该论坛是否正确。 如果您知道更好的一个,请友好并指导我。 谢谢。

我们将文本数据存储在Sybase VARCHAR列中的UTF-8中,并在此列上具有UNIQUE INDEX。 在插入以下两个阿拉伯语单词时,我们会遇到dup键违规的情况:

 بمشًْذالسيّد
 بمشًذالسيد
 

深入分析十六进制显示的代码点:

 d8 a8
 d9 85
 d8 b4
 d9 8b
 d9 92 <----阿拉伯素坤
 d8 b0
 d8 a7
 d9 84
 d8 b3
 d9 8a
 d9 91 <----阿拉伯夏达
 d8 AF

 d8 a8
 d9 85
 d8 b4
 d9 8b
 d8 b0
 d8 a7
 d9 84
 d8 b3
 d9 8a
 d8 AF
 

即 这两个词"几乎"完全相同,第一个词仅包含另外两个字符:ARABIC SUKUN和ARABIC SHADDA,其字词发音具有某些含义(我是德语,对阿拉伯语没有进一步的了解,我什至不知道 以上是什么意思。它们作为传记数据进入了我们的数据库。)

在创建INDEX作为某种规范化时,Sybase ASE是否有可能丢弃两个代码点0xd991和0xd992? 如果是这样,可以通过配置避免这种情况。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


注意:此问题是关于Sybase Adaptive Server Enterprise 15.x或16的。我不确定该论坛是否正确。 如果您知道更好的一个,请友好并指导我。 谢谢。

我们将文本数据存储在Sybase VARCHAR列中的UTF-8中,并在此列上具有UNIQUE INDEX。 在插入以下两个阿拉伯语单词时,我们会遇到dup键违规的情况:

 بمشًْذالسيّد
 بمشًذالسيد
 

深入分析十六进制显示的代码点:

 d8 a8
 d9 85
 d8 b4
 d9 8b
 d9 92 <----阿拉伯素坤
 d8 b0
 d8 a7
 d9 84
 d8 b3
 d9 8a
 d9 91 <----阿拉伯夏达
 d8 AF

 d8 a8
 d9 85
 d8 b4
 d9 8b
 d8 b0
 d8 a7
 d9 84
 d8 b3
 d9 8a
 d8 AF
 

即 这两个词"几乎"完全相同,第一个词仅包含另外两个字符:ARABIC SUKUN和ARABIC SHADDA,其字词发音具有某些含义(我是德语,对阿拉伯语没有进一步的了解,我什至不知道 以上是什么意思。它们作为传记数据进入了我们的数据库。)

在创建INDEX作为某种规范化时,Sybase ASE是否有可能丢弃两个代码点0xd991和0xd992? 如果是这样,可以通过配置避免这种情况。

付费偷看设置
发送
1条回答
Haoba3210
1楼-- · 2020-09-15 16:32

马蒂亚斯,你好

在支持事件中,这可能会得到更好的处理,因为这不太可能是其他人遇到的。 如果您想走那条路线,请记录一个事件并在描述中按名称要求我,我们可以从那里接走。

如果我们愿意的话,如果您愿意在这里处理。

无论哪种方式,我都需要查看sp_helpsort的输出以及表和索引的DDL。

干杯,
Andy Ashwood
SAP高级支持工程师

一周热门 更多>