0

数日前、私はドイツの特別なキャラクターについて質問しました。ö、ä、üなどの文字をエンコードおよびデコードできるようになりました。しかし..いくつかの文字が残っているので、それらもエンコード/デコードする必要があります。

たとえば、失敗した文字:²³€µÜÖÄ〜´§

コードは次のとおりです。

    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);
    }

すべての文字をエンコード/デコードするソリューションを探しています。暗号化/復号化アルゴリズムを書いていますが、どのユーザーがプログラムに貼り付けるのかわかりません。まったく同じものを返す必要があります。

助けてくれてありがとう。

編集:わかりました、UnicodeEncodingは機能します(私は思います)。これは私の暗号化/復号化アルゴリズムです:/何が起こっているのかまだわかりません(私はそれがゼロのsthだと思います。Unicodeによるエンコード中はすべての文字の後にゼロがあります)が、特殊文字をエンコードします。少なくともそのテストは成功しました:

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は正しいですか?

4

2 に答える 2

3

代わりにUnicodeEncodingを試してください。

var encoding = new UnicodeEncoding();
return Write(encoding.GetBytes(s));
于 2012-11-07T15:03:41.160 に答える
2

残念ながら、これらの文字はUnicodeであるため、UTF8Encodingクラスを使用することはできません。

代わりにUnicodeEncodingクラスを使用してみてください。

于 2012-11-07T15:02:18.753 に答える