Also hier ist der Deal: Ich versuche, eine Datei (aus Bytes) zu öffnen, konvertieren Sie es in eine Zeichenfolge, damit ich einige Metadaten in der Kopfzeile verwirren kann, konvertieren Sie es zurück zu Bytes und speichern Sie es. Das Problem, auf das ich gerade stoße, ist mit diesem Code. Wenn ich die Zeichenfolge, die vor und zurück konvertiert wurde (aber nicht anderweitig modifiziert wurde), mit dem ursprünglichen Byte-Array vergleicht, ist sie ungleich. Wie kann ich das schaffen?Konvertieren von Byte-Array in String und wieder zurück in C#
public static byte[] StringToByteArray(string str)
{
UTF8Encoding encoding = new UTF8Encoding();
return encoding.GetBytes(str);
}
public string ByteArrayToString(byte[] input)
{
UTF8Encoding enc = new UTF8Encoding();
string str = enc.GetString(input);
return str;
}
Hier ist, wie ich sie vergleiche.
byte[] fileData = GetBinaryData(filesindir[0], Convert.ToInt32(fi.Length));
string fileDataString = ByteArrayToString(fileData);
byte[] recapturedBytes = StringToByteArray(fileDataString);
Response.Write((fileData == recapturedBytes));
Ich bin sicher, dass es UTF-8, mit:
StreamReader sr = new StreamReader(filesindir[0]);
Response.Write(sr.CurrentEncoding);
die "System.Text.UTF8Encoding" zurückgibt.
Sind Sie sicher, dass seine UTF-8 zu beginnen? –
Ich bin unsicher. Wie würde ich sagen, ob es ist oder nicht? –
Was meinst du, es ist ungleich? Deine Saite ist ungleich? Sie erhalten nicht das gleiche String-Ergebnis? – Khan