Więcej
Jak mogę uzyskać spójną bajtową reprezentację łańcuchów w C# bez ręcznego określania kodowania?
Jak przekonwertować string
na byte[]
w .NET (C#) bez ręcznego określania konkretnego kodowania?
Mam zamiar zaszyfrować ten ciąg znaków. Mogę go zaszyfrować bez konwersji, ale nadal chciałbym wiedzieć, dlaczego kodowanie wchodzi tutaj w grę.
Również, dlaczego kodowanie powinno być brane pod uwagę? Czy nie mogę po prostu uzyskać, w jakich bajtach został zapisany łańcuch? Dlaczego istnieje zależność od kodowania znaków?
2111
3
Zależy to od kodowania twojego łańcucha (ASCII, UTF-8, ...).
Na przykład:
Mała próbka dlaczego kodowanie ma znaczenie:
ASCII po prostu nie jest'wyposażone do radzenia sobie ze znakami specjalnymi.
Wewnętrznie, framework .NET używa UTF-16 do reprezentowania łańcuchów, więc jeśli chcesz po prostu uzyskać dokładne bajty, których używa .NET, użyj
System.Text.Encoding.Unicode.GetBytes (...)
.Zobacz Character Encoding in the .NET Framework (MSDN), aby uzyskać więcej informacji.