2013-03-26 104 views
0

我想編碼新的羅馬尼亞字符「ăşţ」從數據庫導出到CSV文件。這些新字符在2000/01的某個地方添加,但框架中沒有可用的編碼(即使在.net 4.5中)。C#編碼新的羅馬尼亞字符

羅馬尼亞網站之一解釋了使用here。我已經提到了MSDN的細節,但是沒有提及iso-8859-16編碼。如果我使用上述編碼,則C#拋出異常「ISO_8859-16」不是受支持的編碼名稱。「

有沒有人曾經使用過這種編碼?

Sanjay

+1

這些不是新的字符。我認爲用unicode導出CSV文件是可以的。 – Vasea 2013-03-26 14:59:34

回答

2

.Net沒有內置的ISO 8859-16支持。最簡單的解決方案是切換到Unicode編碼,如UTF-8。

如果你仍然想要ISO 8859-16,你可以自己實現它。 Encoding類是可擴展的。作爲參考,請參閱WikipediaMSDN

爲EBCDIC看到這個答案的一個例子:Create own Encoding for Roman8 charset

您需要實現的抽象方法:

int GetByteCount(char[], int, int) 
int GetBytes(char[], int, int, byte[], int) 
int GetCharCount(byte[], int, int) 
int GetChars(byte[], int, int, char[], int) 
int GetMaxByteCount(int) 
int GetMaxCharCount(int) 

,也許是虛擬成員:

bool IsSingleByte { get; } 
string EncodingName { get; }