C# 文化特定符号

标签 c# string string-comparison culture

拉脱维亚文化 lv-LV有一些特殊字符,如“ā”、“ī”、“ģ”等。 是否有任何内置方法可以让以下代码返回 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在同一个线程中,您可能也想查看一下。

关于C# 文化特定符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40953269/

相关文章:

c# - 在 Gtk 中,如何在具有多个 CellRenderer 的 TreeViewColumn 中制作 CellRendererToggle 仅在单击复选框本身时才切换?

c# - 将列表 <string> 传递到 Linq

python - 在另一个字符串中多次查找一个字符串 - Python

regex - 如何将一个字符串与另一个之间有空格的字符串进行比较

c# - 如何在 WinRT 中将 VirtualKey 转换为非美式键盘布局的字符?

c# - 如何从命令行使用 StyleCop?

string - 如何提取字符串中第一个下划线之前的所有内容?

javascript - 正则表达式中的括号未被替换

python - 逐行比较 2 个文件,忽略换行符差异

c# - LINQ 字符串比较与 NULL 处理