如何以通用方式在SQL Server Compact EditionCE中存储唯一的多语言文本?

问题描述

| 我在DirectTable模式下使用SQL Server CE 3.5。 让我们定义字符的唯一性。如果两个字符完全相同(例如\'a \'和\'a \'),则它们相等。诸如\'A \'和\'a \'之类的字符不相等。如果两个字符串以相同的顺序包含相同的字符,则它们是相等的,例如\'foo \'不等于\'ofo \'或\'Foo \'。 现在,请注意,我不在乎ISO委员会所说的内容,我需要非常精确的匹配。目的是在数据库中存储多语言文本(单词)。 问题-问题是怎么做?我对该语言一无所知,一个用户只能存储波兰语词汇中的单词,另一个用户可以同时存储多种语言中的单词(这是有效的)。 如果您认为这个问题不重要,那您就错了。我已经发现SQL Server CE将双\等同于单字符\“ß\”,这是完全不可接受的。我发现了一些变通方法,它们迫使比较时进行整理,但是我不能使用它们: 他们假设SQL查询,这对我来说是行不通的,这会让我慢下来 他们事先假设问题是德语,我不能假设这样的事情 我在数据库中搜索,但是不使用排序,所以我不在乎显示带有单词的整个表格是否按“正确”的顺序排列。我关心的是当我在表中查找文本时,如果单词真的相等而不是相似,我就会匹配。 解决方法 因为对于当前项目,我需要“昨天”的有效解决方案,所以我将文本字符串字段保留在数据库中而没有任何更改,但是在读取时,我将它们从base64转换为utf8,反之亦然。对于空间有一点点矫kill过正,但是我可以忍受它,并且对于区分大小写的重要操作,我完全独立于MS比较实现,排序规则等。每个单独的Unicode字符都以不同的方式编码。 不过,我想尽一切办法寻求更优雅的解决方案(如果有的话)。     

解决方法

        对于初学者,您可以使数据库区分大小写,因此A <> a。 SQL CE存储unicode,因此将允许您存储所有必需的字符。您是在.NET中进行比较还是使用索引?     

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...