如何编码&解码非Ascii字符?

时间:2012-09-25 05:38:00

标签: c# encoding decoding non-ascii-characters

我正在开发一个应用程序,我想在其中编码西班牙文本。 但问题是,它不会编码特殊字符,如á,é,í,ó,ú,ü,Á,É,Í,Ó,Ú,Ü,Ñ,ñ 。 我该怎么做?我想编码 - 解码西班牙文

2 个答案:

答案 0 :(得分:4)

对于使用简单UTF-8编码到encode/decode的国际支持,您的数据应该足够了。

Utf-8具有能够以一个字节(普通ASCII)和2个字节的Unicode字符读取ASCII的能力。因此,它可以在需要时“收缩”。

查看完整的C#文档 UTF-8

编辑

  Encoding enc = new UTF8Encoding(true, true);
  string value = " á, é, í, ó, ú, ü,Á, É, Í, Ó, Ú, Ü,Ñ,ñ "; 
  byte[] bytes= enc.GetBytes(value); //convert to BYTE array 

 //save in some file 

 //after can read  from the file like
 string decodedString = enc.GetString(byteArrayReadFromFile);

答案 1 :(得分:0)

好吧,我正在回答我自己的问题,希望它能帮到某个人;在给定字符串中打印西班牙语或任何其他非ascii字符通过其unicode转义字符集替换所有非ascii字符 例如,通过\ u00e1 重新开始 然后只需打印字符串。

string str="árgrgrgrááhhttá";
str=str.Replace("á", "\u00e1");