Kodowanie używane w obsadzie od char do bajtu

Spójrz na poniższy kod C # (funkcja wyodrębniona zBuildProtectedURLWithValidity funkcja whttp://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;
}

Moje pytanie brzmi:Co robi casting z bajtu na char w zakresie kodowania?

Domyślam się, że to naprawdę nie robi nic, jeśli chodzi o Kodowanie, ale czy to oznacza, że ​​używany jest Kodowanie.Default, a więc bajt do zwrócenia będzie zależał od tego, w jaki sposób framework zakoduje ciąg znaków w konkretnym Systemie Operacyjnym?

A poza tym, czy znak jest rzeczywiście większy niż bajt (zgaduję 2 bajty) i faktycznie pominie pierwszy bajt?

Zastanawiałem się nad zastąpieniem tego wszystkiego przez:

Encoding.UTF8.GetBytes(stringToBeHashed)

Co myślisz?

questionAnswers(3)

yourAnswerToTheQuestion