同一文本具有不同的字节大小

3

我有一个简单的文本文件,读取其中的内容,进行一些操作(例如编码和解码),并将结果保存在文件中。当我在Beyond Compare中比较这两个文件时,发现它们的内容相同,但文件大小不同。为什么?我该如何解决这个问题?


你如何读写文件? - Alessandro D'Andria
1
Ray,你需要一个答案还是只是猜测? - I4V
@AlessandroD'Andria File.ReadAllText(file, Encoding.UTF8); File.WriteAllText(fileName, dest_txt.Text, Encoding.UTF8);@AlessandroD'Andria File.ReadAllText(file, Encoding.UTF8); File.WriteAllText(fileName, dest_txt.Text, Encoding.UTF8); - Ray
@I4V 我知道在新文件中插入了某种编码符号。但我不明白如何以相同的编码和字符顺序读写文件,却得到不同大小的字节。 - Ray
@Tzach的回答是正确的,你能做的最好的事情就是比较文件并查看有什么变化(我在考虑编码,即使你使用相同的编码加载和保存文件也可能是原因)。 - Alessandro D'Andria
1个回答

8

可能有很多原因,例如不同的编码方式,或者一个使用 \r\n 而另一个仅使用 \n

使用 BeyondCompare 中的十六进制比较功能可以准确找出问题所在。


除了换行符外,在某些文本编码中还存在字节顺序标记,因此文件的前几个字节可能不同。 - Joe Enos
你能准确地说出它们的区别吗?你使用过十六进制比较吗? - Tzach
@Tzach 在源文件中,0D 0A 转换为结果文件中的 0A。 - Ray
1
这只是将\r\n替换为\n。确保在创建dest_txt.Text字符串时使用Environment.NewLine而不仅仅是\n - Tzach

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接