Yani burada anlaşma var dizeye bayt dizisi dönüştürme ve: Ben başlığındaki bazı meta verilerle bir dizeye yüzden can karışıklık dönüştürmek, (bayt) bir dosyayı açmaya çalışıyorum, geri dönüştürmek bayt için ve kaydedin. Şu an koştuğum problem bu kodla. Özgün bayt dizisine geri ve ileri (ancak başka şekilde değiştirilmemiş) dönüştürülen dizgiyi karşılaştırdığımda, bu eşitsizdir. Bu işi nasıl yapabilirim?C# tekrar
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;
}
İşte bunları nasıl karşılaştırıyorum.
byte[] fileData = GetBinaryData(filesindir[0], Convert.ToInt32(fi.Length));
string fileDataString = ByteArrayToString(fileData);
byte[] recapturedBytes = StringToByteArray(fileDataString);
Response.Write((fileData == recapturedBytes));
Ben kullanarak, UTF-8 eminim:
"System.Text.UTF8Encoding" döndürürStreamReader sr = new StreamReader(filesindir[0]);
Response.Write(sr.CurrentEncoding);
.
UTF-8'in başlayacağından emin misiniz? –
Emin değilim. Olup olmadığımı nasıl anlarım? –
Ne demek, eşitsiz mi? Dizininiz eşit değil mi? aynı ipucu sonucunu almazsınız? – Khan