0

我正在尝试对新的罗马尼亚语字符“ă ș ț”进行编码以从 DB 导出到 CSV 文件。这些新字符是在 2000/01 的某个地方添加的,但框架中没有可用的编码(即使在 .net 4.5 中)。

罗马尼亚网站之一在这里解释了字符的用法。我在MSDN上提到了详细信息,但没有提到 iso-8859-16 编码。如果我使用上述编码,则 C# 抛出异常“'ISO_8859-16' 不是受支持的编码名称。”

以前有人用过这种编码吗?

桑杰

4

1 回答 1

2

.Net 没有对 ISO 8859-16 的内置支持。最简单的解决方案是切换到 Unicode 编码,例如 UTF-8。

如果你仍然想要 ISO 8859-16,你可以自己实现它。该类Encoding是可扩展的。作为参考,请参阅WikipediaMSDN

有关 EBCDIC 的示例,请参见此答案:为 Roman8 字符集创建自己的编码

您需要实现抽象方法:

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; }
于 2013-03-26T15:17:39.813 回答