C#编码新的罗马尼亚字符ăş

时间:2013-03-26 14:13:44

标签: c# character-encoding

我正在尝试编码新的罗马尼亚字符“ăş”以从DB导出到CSV文件。这些新角色在2000/01年的某处添加,但框架中没有可用的编码(即使在.net 4.5中)。

其中一个罗马尼亚网站解释了字符here的用法。我已经提到了MSDN的详细信息,但没有提及iso-8859-16编码。如果我使用上面的编码,那么C#抛出异常“'ISO_8859-16'不是受支持的编码名称。”

有没有人曾经使用过这种编码?

桑杰

1 个答案:

答案 0 :(得分: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; }