所以这是交易:我正在尝试打开一个文件(从字节),将其转换为字符串,这样我就可以在标题中弄乱一些元数据,将其转换回字节,然后保存它。我现在遇到的问题是这段代码。当我将来回转换(但未修改)的字符串与原始字节数组进行比较时,它是不相等的。我怎样才能使这项工作?
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”。