Miten saan merkkijonojen johdonmukaisen tavuihin perustuvan esityksen C#:ssa määrittelemättä manuaalisesti koodausta?
Miten muunnan merkkijonon
byte[]
:ksi .NETissä (C#) määrittelemättä manuaalisesti tiettyä koodausta?
Aion salata merkkijonon. Voin salata sen ilman muuntamista, mutta haluaisin silti tietää, miksi koodaus tulee tässä käyttöön.
Miksi koodaus pitäisi ottaa huomioon? Enkö voi yksinkertaisesti saada selville, mihin tavuihin merkkijono on tallennettu? Miksi merkkikoodauksista ollaan riippuvaisia?
2111
3
Se riippuu merkkijonon koodauksesta (ASCII, UTF-8, ...).
Esimerkiksi:
Pieni esimerkki siitä, miksi koodauksella on merkitystä:
ASCII ei yksinkertaisesti pysty käsittelemään erikoismerkkejä.
Sisäisesti .NET-kehys käyttää UTF-16 merkkijonojen esittämiseen, joten jos haluat yksinkertaisesti saada tarkat tavut, joita .NET käyttää, käytä
System.Text.Encoding.Unicode.GetBytes (...)
.Katso lisätietoja Character Encoding in the .NET Framework (MSDN).