2012-09-25 99 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

相關問題