5

私は現在アルゴリズムの暗号化を行っており、ドイツ語の単語も暗号化する必要があります。そのため、ü、ä、ö などの文字を暗号化する必要があります。

内部には関数があります:

private static byte[] getBytesArray(string data)
{
    byte[] array;
    System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();
    array = asciiEncoding.GetBytes(data);            
    return array;
}

ただし、データが「ü」の場合、配列に返されるバイトは 63 (つまり「?」) です。ü バイトを返すにはどうすればよいですか?

私も試しました:

private static byte[] MyGetBytesArray(string data)
{
    byte[] array;
    System.Text.ASCIIEncoding asciiEncoding = new System.Text.ASCIIEncoding();

    Encoding enc = new UTF8Encoding(true, true);
    array = enc.GetBytes(data);

    return array;
}

しかし、この場合、配列には 195 と 188 の 2 バイトが含まれます。

4

2 に答える 2

7

System.Text.ASCIIEncodingSystem.Text.UTF8Encodingに置き換え、最初の例でそれに応じてエンコーディングオブジェクトの名前を変更してください。ASCIIは基本的にドイツ語の文字をサポートしていないため、他のエンコーディングを使用する必要があります(UTF-8がここでの最良のアイデアのようです)。

こちらをご覧ください:ASCIIエンコーディングおよびこちら:UTF-8エンコーディング

于 2012-11-05T10:40:38.407 に答える
1

これを使用できます

System.Text.Encoding utf_8 = System.Text.Encoding.UTF8;

// This is our Unicode string:
string s_unicode = "abcéabc";

// Convert a string to utf-8 bytes.
byte[] utf8Bytes = System.Text.Encoding.UTF8.GetBytes(s_unicode);

// Convert utf-8 bytes to a string.
string s_unicode2 = System.Text.Encoding.UTF8.GetString(utf8Bytes);
于 2013-09-02T10:03:06.197 に答える