将特殊字符编码为字节数组

时间:2012-11-07 14:53:26

标签: c# .net encoding character-encoding special-characters

前几天我问了一个关于德国特殊人物的问题。 我现在可以对ö,ä或ü等字符进行编码和解码。但是......剩下一些字符,我也需要对它们进行编码/解码。

例如,失败的字符:²³€ÜÖÄ~'§

这是代码:

    private static byte[] MyGetBytesArray(string data)
    {
        Encoding enc = new UTF8Encoding(true, true);
        return enc.GetBytes(data);
    }

    private static string MyGetString(byte[] data)
    {
        Encoding enc = new UTF8Encoding(true, true);
        return enc.GetString(data);
    }

我正在寻找编码/解码所有字符的解决方案。我正在写一个加密/解密algorythm,我不知道用户会粘贴到程序中。我需要回馈完全相同的东西。

再次感谢您的帮助..

编辑: 好的,UnicodeEncoding有效(我认为)。现在是我的加密/解密algoryth:/我仍然不确定发生了什么(我用它做零件。在Unicode编码期间,零在每个字符之后),但编码特殊字符wokrs。至少那个测试是成功的:

string text = File.ReadAllText(opd.FileName, Encoding.Default);
byte[] byt = getBytesArray(text);
string text2 = getString(byt);

if (text2 == text)
{
    MessageBox.Show("OK");
}
else
{
    MessageBox.Show("FAIL");
}

顺便说一句。 Encoding.Default是对的吗?

2 个答案:

答案 0 :(得分:2)

不幸的是,这些字符是Unicode,因此您将无法使用UTF8Encoding类。

请尝试使用UnicodeEncoding类。

答案 1 :(得分:2)

尝试使用UnicodeEncoding。

var encoding = new UnicodeEncoding();
return Write(encoding.GetBytes(s));