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

我需要将字符串中的重音替换为英语等价物

例如

ä= ae

ö= oe

Ö=大江

ü=你

我知道将它们从字符串中删除但我不知道更换。

如果您有任何建议,请告诉我。 我在C#中编码

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

 var map = new Dictionary() { { 'ä', "ae" }, { 'ö', "oe" }, { 'ü', "ue" }, { 'Ä', "Ae" }, { 'Ö', "Oe" }, { 'Ü', "Ue" }, { 'ß', "ss" } }; var res = germanText.Aggregate( new StringBuilder(), (sb,c) => { string r; if(map.TryGetValue(c, out r)) return sb.Append(r); else return sb.Append(c); }).ToString(); 

只想要将德语变音符号映射到双字母(非变音符号)变体吗? 干得好; 未经测试,但它处理所有德国变形金刚。

 String replaceGermanUmlauts( String s ) { String t = s; t = t.Replace( "ä", "ae" ); t = t.Replace( "ö", "oe" ); t = t.Replace( "ü", "ue" ); t = t.Replace( "Ä", "Ae" ); t = t.Replace( "Ö", "Oe" ); t = t.Replace( "Ü", "Ue" ); t = t.Replace( "ß", "ss" ); return t; } 

我想不出任何自动方式,所以我相信你必须手动完成。

即。

 string GermanString = "äö"; GermanString = GermanString.Replace("ä", "ae"); GermanString = GermanString.Replace("ö", "oe"); 

有多少个字符? 所有元音,大写和小写,10? 不应该是太多的工作。

如何使用string.Replace:

 string germanText = "Mötörhead"; string replaced = germanText.Replace("ö", "oe"); 

(好吧,不是真正的德语单词,但我无法抗拒)

你可以将调用链接到这样的替换

 someText.Replace("ö", "oe").Replace("ä", "ae").Replace("ö", "oe")...