C# 文化特定符号

C# Culture Specific symbols

在拉脱维亚文化中 lv-LV 有特殊字符,例如 'ā'、'ī'、'ģ' 等。 是否有任何内置方式,其中以下代码 returns true ?

var nameLv = "Jevģeņijs";

var nameEng = "Jevgenijs";

nameLv.Equals(nameEng, StringComparison.InvariantCultureIgnoreCase);

这是将 this answer 应用于您的代码的解决方案。

public static void Main()
{
    var nameLv = "Jevģeņijs";
    var nameEng = "Jevgenijs";

    var result = IsEquivalent(nameLv, nameEng);  // returns True
}

public static bool IsEquivalent(string latvian, string english)
{
    return english ==
        Encoding.UTF8.GetString(Encoding.GetEncoding("ISO-8859-8").GetBytes(latvian));
}

我不能说这是否是最稳健的方法或者是否适用于任何特定的字符串,但tested with your input它似乎工作正常。

同一个话题中有 quite a few other solutions 个您可能也想查看的帖子。