Unicode到ASCII,带有umlats的字符转换

时间:2015-01-28 15:56:18

标签: c# tsql unicode ascii

我有一个发送unicode输入文件的客户端,并且只需要ASCII编码文件 - 为什么不重要。

有没有人知道将unicode字符串转换为最接近ASCII字符串的例程?我希望将像'ä'这样的常见unicode字符替换为最佳ASCII表示。

例如:'ä' - > 'A'

数据驻留在SQL Server中,但我也可以在C#中作为下游机制或CLR程序工作。

2 个答案:

答案 0 :(得分:0)

只需循环遍历字符串。为每个角色做一个开关:

switch(inputCharacter)
{
    case 'ä':
      outputString = "ae";
      break;
    case 'ö':
      outputString = "oe";
      break;
...

(这些翻译在德语中很常见,只有ASCII)

然后将所有outputStrings与StringBuilder组合在一起。

答案 1 :(得分:0)

我认为你的意思是扩展ASCII到ASCII 只是一个简单的字典

Dictionary<char, char> trans = new Dictionary<char, char>() {...}  
StringBuilder sb = new StringBuilder();
foreach (char c in string.ToCharArray)
{
     if((Int)c <= 127) 
         sb.Append(c);
     else
         sbAppend(trans[c]);
}
string ascii = sb.ToString();