In der Umwandlung von Zeichen zu Byte verwendete Kodierung

Schauen Sie sich den folgenden C # - Code an (Funktion extrahiert aus derBuildProtectedURLWithValidity Funktion inhttp://wmsauth.org/examples):

byte[] StringToBytesToBeHashed(string to_be_hashed) {
    byte[] to_be_hashed_byte_array = new byte[to_be_hashed.Length];
    int i = 0;
    foreach (char cur_char in to_be_hashed)
    {
        to_be_hashed_byte_array[i++] = (byte)cur_char;
    }
    return to_be_hashed_byte_array;
}

Meine Frage ist:Was bewirkt das Casting von Byte zu Zeichen in Bezug auf die Codierung?

Ich vermute, es macht wirklich nichts in Bezug auf die Codierung, aber bedeutet das, dass die Codierung.Default diejenige ist, die verwendet wird, und daher hängt das zurückzugebende Byte davon ab, wie das Framework die zugrunde liegende Zeichenfolge im spezifischen Betriebssystem codiert?

Und außerdem: Ist das Zeichen tatsächlich größer als ein Byte (ich vermute 2 Bytes) und lässt das erste Byte weg?

Ich habe darüber nachgedacht, dies alles zu ersetzen durch:

Encoding.UTF8.GetBytes(stringToBeHashed)

Was denkst du?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage