【发布时间】:2016-03-18 02:26:12
【问题描述】:
我想使用File.Readallbytes(myfile) 读取文件并将其转换为类似字符串
string s=ByteArraytoString(File.Readallbytes(myfile));
但它并不适用于我选择的每个文件,而是当文件是 unicode 时它可以工作文件,否则它不会,所以如果有人可以帮助我
public static string ByteArrayToString(byte[] bytes)
{
char[] chars = new char[(bytes.Length / sizeof(char))];
Buffer.BlockCopy(bytes, 0, chars, 0, bytes.Length);
return new string(chars);
}
public static byte[] StringToByteArray(string s)
{
byte[] bytes = new byte[s.Length * sizeof(char)];
Buffer.BlockCopy(s.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
所以例外是:在 ByteArrayToString 方法中
System.ArgumentException:偏移量和长度超出了数组的范围,或者计数大于从索引到源集合末尾的元素数。 在 System.Buffer.BlockCopy(Array src, Int32 srcOffset, Array dst, Int32 dstOffset, Int32 count)
我知道这个解决方案发布了 1000 次,但没有人在这段代码中解决这个问题
【问题讨论】:
标签: c# arrays exception encoding