तो यहाँ सौदा है: मैं (बाइट्स से) एक फ़ाइल खोलने के लिए, शीर्षक में कुछ मेटाडाटा के साथ गड़बड़ कर सकते हैं तो मैं एक स्ट्रिंग के लिए परिवर्तित कोशिश कर रहा हूँ, इसे वापस कन्वर्ट बाइट्स के लिए, और इसे बचाओ। जिस समस्या में मैं अभी चल रहा हूं वह इस कोड के साथ है। जब मैं उस स्ट्रिंग की तुलना करता हूं जिसे मूल बाइट सरणी में आगे और आगे परिवर्तित किया गया है (लेकिन अन्यथा संशोधित नहीं किया गया है), यह असमान है। मै इसे काम मे कैसे ले सकता हूँ?सी # में स्ट्रिंग के लिए बाइट सरणी परिवर्तित और फिर से वापस
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;
}
यहां बताया गया है कि मैं उनकी तुलना कैसे कर रहा हूं।
byte[] fileData = GetBinaryData(filesindir[0], Convert.ToInt32(fi.Length));
string fileDataString = ByteArrayToString(fileData);
byte[] recapturedBytes = StringToByteArray(fileDataString);
Response.Write((fileData == recapturedBytes));
मुझे यकीन है कि यह UTF-8 है, का उपयोग कर रहा हूँ:
StreamReader sr = new StreamReader(filesindir[0]);
Response.Write(sr.CurrentEncoding);
जो "System.Text.UTF8Encoding" देता है।
क्या आप वाकई इसके यूटीएफ -8 से शुरुआत कर रहे हैं? –
मुझे यकीन नहीं है। मैं कैसे बताउंगा कि यह है या नहीं? –
आपका क्या मतलब है, यह असमान है? आपकी स्ट्रिंग असमान है? आपको एक ही स्ट्रिंग परिणाम नहीं मिलता है? – Khan