[英].net string comparison with collation
我有2個不同的字符串( XXÈ
和XXE
)。 有什么方法可以使用歸類比較它們(在這種情況下,它將是UTF8 general CI
我需要它們相等)? 我見過一些涉及MSSQL或SQLLite的示例-但這會給我的項目增加不必要的依賴。 所以,我的問題是-有什么方法可以在純.net(尤其是C#)中做到這一點?
更新:
讓我們以任何不錯的SQL引擎為例。 您可以創建表格,也可以選擇表格的排序規則。 在我們的情況下, XXÈ
和XXE
將存儲在表中,它們將具有不同的二進制表示形式(取決於編碼),但是當您搜索XXE
,它也會與XXÈ
匹配。
我的情況非常相似。 我有一個帶有一些字符串的文本文件(UTF8)。 我想在屏幕上顯示值(排序-排序規則再次出現,相對重要),我想讓用戶搜索值。 用於搜索的排序規則將是一個選項。
您可以使用String.Normalize
和一點LINQ功能:
string initial = "XXÈ";
string normal = initial.Normalize(NormalizationForm.FormD);
var withoutDiacritics = normal.Where(
c => CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark);
string final = new string(withoutDiacritics.ToArray());
bool equals = "XXE".Equals(final); // true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.