W tej funkcji konwersjiKonwersja ciąg byte [] tworzy zerowy charakter
public static byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
byte[] test = GetBytes("abc");
Powstały tablica zawiera zero znaków
test = [97, 0, 98, 0, 99, 0]
A kiedy konwertować byte [] z powrotem do łańcucha, wynik jest
string test = "a b c "
jaki sposób możemy zrobić to tak, aby nie tworzyć tych zer
Te zera wydawały się celowo celowe, gdy skopiowano znaki do tablicy bajtów. Jakiego rodzaju kodowania * * chcesz? ASCII? UTF-8? – harold
możliwy duplikat [Pobierz plik pobierz z bajtu \ [\]] (http://stackoverflow.com/questions/14158804/return-file-download-from-byte) – Esailija
ToCharArray, jak sama nazwa wskazuje, zwraca char [] . Znak char ma 16 bitów, czyli 2 bajty. Otrzymasz dodatkowy bajt o wartości 0, nawet dla prostego tekstu ASCII. – Chris