C#文化特定符号

时间:2016-12-03 22:37:58

标签: c# string string-comparison culture

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

var nameLv = "Jevģeņijs";

var nameEng = "Jevgenijs";

nameLv.Equals(nameEng, StringComparison.InvariantCultureIgnoreCase);

1 个答案:

答案 0 :(得分:1)

这是一个将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,您可能也想查看。