c# - 我如何在 .NET 中替换口音(德语)

标签 c# string character-encoding diacritics

我需要将字符串中的重音替换为对应的英语

例如

ä = ae

ö = oe

Ö = Oe

ü = ue

我知道从字符串中删除它们,但我不知道要替换。

如果您有任何建议,请告诉我。我正在用 C# 编写代码

最佳答案

如果您需要在较大的字符串上使用它,多次调用 Replace() 会很快变得低效。您最好逐个字符地重建字符串:

var map = new Dictionary<char, string>() {
  { 'ä', "ae" },
  { 'ö', "oe" },
  { 'ü', "ue" },
  { 'Ä', "Ae" },
  { 'Ö', "Oe" },
  { 'Ü', "Ue" },
  { 'ß', "ss" }
};

var res = germanText.Aggregate(
              new StringBuilder(),
              (sb, c) => map.TryGetValue(c, out var r) ? sb.Append(r) : sb.Append(c)
              ).ToString();

关于c# - 我如何在 .NET 中替换口音(德语),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1271567/

相关文章:

c# - 使用 WindowsXamlHost Overlay 托管 CaptureElement

c# - 如何在运行时更改语义日志记录中的日志级别?

c# - 如何在 LINQ 中使用 ToString() 方法将整数转换为字符串

c++ - 检查 C++ 字符串中的 int : revised: clearing cin

C中保证int值小于256时,将int指针转换为char指针

c# - 接受数字 + ":"或“.”+ 数字的正则表达式

java - 使用流获取整数形成字符串 (Java)

algorithm - 产生url安全数据的压缩算法

ruby-on-rails - 在 Rails 中检测非 ASCII 字符

XML UTF8 字符集范围