c# 如何撤消编码。UTF8.GetBytes 或转换为 File.ReadAllBytes
c# How to undo Encoding.UTF8.GetBytes or convert to File.ReadAllBytes
已编写 C# 应用程序,将文件传输到 FTP 服务器。下面的函数用于读取 jpeg 文件。这是一个糟糕的功能,因为它破坏了 jpeg:
StreamReader sourceStream = new StreamReader("image.jpeg");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
下面的代码适用于文件传输。:
fileContents = File.ReadAllBytes(sourceStream.ReadToEnd());
现在我有了损坏的 jpeg 库。
如何解决这个问题?
您根本不应该使用 StreamReader
来读取二进制文件,它是 TextReader
。即使你的第二段代码也是错误的,除非 sourceStream
只包含一个文件名。
您的数据很可能已损坏,无法修复。您可以使用 Encoding.UTF8.GetString
和 StreamWriter
执行相反的操作,但您的编码很可能已经造成无法弥补的损坏。
已编写 C# 应用程序,将文件传输到 FTP 服务器。下面的函数用于读取 jpeg 文件。这是一个糟糕的功能,因为它破坏了 jpeg:
StreamReader sourceStream = new StreamReader("image.jpeg");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
下面的代码适用于文件传输。:
fileContents = File.ReadAllBytes(sourceStream.ReadToEnd());
现在我有了损坏的 jpeg 库。
如何解决这个问题?
您根本不应该使用 StreamReader
来读取二进制文件,它是 TextReader
。即使你的第二段代码也是错误的,除非 sourceStream
只包含一个文件名。
您的数据很可能已损坏,无法修复。您可以使用 Encoding.UTF8.GetString
和 StreamWriter
执行相反的操作,但您的编码很可能已经造成无法弥补的损坏。