因此,这里的处理:我试图打开一个文件(从字节),将其转换为一个字符串,所以我可以混淆头中的一些元数据,将其转换回来字节,并保存。我现在遇到的问题是使用此代码。当我将来回转换的字符串(但没有另行修改)与原始字节数组进行比较时,它是不相等的。我该如何做这项工作?将字节数组转换为字符串并返回到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;
}
下面是我如何比较它们。
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”。
你确定它的UTF-8开头吗? – 2009-09-14 15:34:22
我不确定。我如何判断它是否是? – 2009-09-14 15:46:30
你是什么意思,它是不平等的?你的字符串不相等?你不会得到相同的字符串结果? – Khan 2009-09-14 16:05:00