是否有一种简单的方法可以在C#中复制MySQL utf_general_ci
排序规则的行为?
特别是,给定一个Unicode字符串,我想生成一个(n ASCII?)字符串,然后可以按照utf_general_ci
进行简单的排序或比较。
我找到了this question,其中显示了如何从字符串剥离重音符号,它看起来像一个类似但不完全等效的函数,例如,它不会分解ß
进入ss
。
就我的目的而言,可能最终会变得足够好,但如果有办法完全复制其行为,我宁愿这样做。
答案 0 :(得分:0)
查看SortKey class及其KeyData属性。
对于给定的排序规则(.NET术语中的CultureInfo)和字符串,您可以使用MyCultureInfo.CompareInfo.GetSortKey(mystring).KeyData
获得可自然排序的字节数组。我认为.NET和MySQL的整理键不一定匹配,但两者都使用基于Unicode Collation algorithm的相同技术