2012-09-25 77 views
1

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

回答

0

好吧,我回答我的问题,希望这将帮助别人;在给定字符串中打印西班牙文或任何其他非ascii字符用unicode转义字符集替换所有非ascii字符 例如,通过\ u00e1 然后只需打印字符串。

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

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

Utf-8有一个漂亮的功能,能够读取一个字节为ASCII作为普通的ASCII和Unicode字符与2个字节。所以它在需要时能够“收缩”。

有关完整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); 
+0

我试图UTF-8和的base64但它没有编码的非ASCII字符 – dd619

+0

我认为你不正确的使用它。可以提供一些代码? – Tigran

+0

//编码使用UTF-8 \t公共静态字符串EncodeTo641(串toEncode) { 字节[] toEncodeAsBytes = System.Text.UTF8Encoding.UTF8.GetBytes(toEncode); string returnValue = System.Convert.ToBase64String(toEncodeAsBytes); return returnValue; \t \t } \t //解码字符串 \t公共静态字符串DecodeFrom64(串encodedData) { 字节[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData); string returnValue = System.Text.UTF8Encoding.UTF8.GetString(encodedDataAsBytes); return returnValue; } – dd619

相关问题