2010-06-28 3 views
1

Existe-t-il un moyen facile de répliquer le comportement du classement utf_general_ci de MySQL en C#?utf_general_ci de MySQL en C#

En particulier, étant donné une chaîne Unicode, je veux générer une chaîne (n ASCII?) Qui peut ensuite être trivialement triée ou comparée, comme le ferait utf_general_ci.

Je trouve this question, qui montre comment bande accents de cordes, qui ressemble à une fonction similaire, mais pas tout à fait équivalent, par exemple, il ne se décompose pas ß en ss. Pour mes fins, que peut finissent par être assez bon, mais s'il y a un moyen de répliquer son comportement complètement, je préférerais cela.

Répondre

0

Jetez un oeil à la SortKey class et sa propriété KeyData.

Pour donné la collation (CultureInfo en termes .NET) et une chaîne, vous pouvez obtenir un tableau d'octets naturellement sortable en utilisant MyCultureInfo.CompareInfo.GetSortKey (mystring) .KeyData

Je ne pense pas que les clés de collationnement pour. NET et pour MySQL correspondent nécessairement, mais les deux utilisent la même technique basée sur Unicode Collation algorithm