C# 给字母添加重音的最佳方法?

C# 给字母添加重音的最佳方法?,c#,C#,我知道我想添加到字母ex:“'”的重音,我知道我想添加到ex:“a”的字母,我希望最后的结果是。但这必须至少使用5个字母:a,e,i,o,u和4个重音“''”、“”、“^”、“~”。现在我正在处理一个具有多个不同大小写的函数。有更好的方法吗 我现在使用的方法: 莱特拉:信;CarateRespective:特殊字符 switch (caraterEspecial) { case "´": switch

我知道我想添加到字母
ex:“'”
的重音,我知道我想添加到
ex:“a”
的字母,我希望最后的结果是
。但这必须至少使用5个字母:
a,e,i,o,u
和4个重音
“''”、“
”、“^”、“~”
。现在我正在处理一个具有多个不同大小写的函数。有更好的方法吗

我现在使用的方法: 莱特拉:信;CarateRespective:特殊字符

switch (caraterEspecial)
            {
                case "´":
                    switch (letra)
                    {
                        case "a":
                            letra= "á";
                            break;
                        case "e":
                            letra= "é";
                            break;
                        case "i":
                             letra= "í";
                            break;
                        case "o":
                             letra= "ó";
                            break;
                        case "u":
                             letra= "ú";
                            break;
                    }
                    break;

                case "`":
                    switch (letra)
                    {
                        case "a":
                            letra= "à";
                            break;
                        case "e":
                            letra= "è";
                            break;
                        case "i":
                            letra= "ì";
                            break;
                        case "o":
                            letra= "ò";
                            break;
                        case "u":
                            letra= "ù";
                            break;
                    }
                    break;

                case "~":
                    switch (letra)
                    {
                        case "a":
                            letra= "ã";
                            break;
                        case "o":
                            letra = "õ";
                            break;
                    }
                    break;

                case "^":
                    switch (letra)
                    {
                        case "a":
                            letra= "â";
                            break;
                        case "e":
                            letra= "ê";
                            break;
                        case "i":
                            letra= "î";
                            break;
                        case "o":
                            letra= "ô";
                            break;
                        case "u":
                            letra = "û";
                            break;
                    }
                    break;
            }
因为接受的答案是一个很好的使用列表:

您可以添加Unicode。这将生成一个2个字符的序列,显示为带重音的字符

如果需要,可以将该字符串规范化为规范形式

例:


您可以轻松地使用替换方法,但您的问题不完整。 你应该发送函数,一段代码


我只想使用一个
s.replace('a','á')
,也许这很平庸,但如果字母是那样的单个,你不必处理太多。

,特别是显示了反向过程,这将有助于找到正确的字母methods@TimSchmelter如果你没有答案,请不要想当然。谢谢。请注意,这仍然是非常特定于区域性的,因此简单地使用映射字典或类似的东西并不一定会更好。Unicode技巧很有趣,但不同的语言对相似概念的处理仍然不同。当我尝试使用此代码时:它们保持分离。如何修复它?您必须注意使用组合字符。组合瓷砖是U+0303,这不起作用,因为我需要5个字母和4个重音。
string s = "a";
s += "\u0301";
s = s.Normalize();