问题在于未指定的读取文件 encoding ,检查 这个问题 。
encoding
如上所述,你可以用超载来 ReadAllText 要指定编码和写入,您必须指定编码 WriteAllText 我建议使用UTF-8编码:
var model = File.ReadAllText(@"C:\Users\pichlerm\Desktop\model_region_nut.txt",Encoding.UTF8); var base64 = ImageConverter.Base64Encode(model); File.WriteAllText(@"C:\Users\\Desktop\base64.txt", base64,Encoding.UTF8); var modelneu = ImageConverter.Base64Decode(File.ReadAllText(@"C:\Users\\Desktop\base64.txt")); File.WriteAllText(@"C:\Users\pichlerm\Desktop\modelneu.txt", modelneu);
如果您正在使用二进制数据,则根本没有理由进行文本解码和编码。这样做只会以各种方式破坏数据,即使您使用的是一致的字符编码。
只是用 File.ReadAllBytes() 代替 File.ReadAllText() 并跳过不必要的 Encoding 步。
File.ReadAllBytes()
File.ReadAllText()
Encoding