USB 传输后,Ubuntu 上的 Windows 文本文件似乎已损坏

USB 传输后,Ubuntu 上的 Windows 文本文件似乎已损坏

我今天遇到了一件极其奇怪的事。

事情是这样的:我在工作中使用 PyDev 编写了一个简短的 Python 脚本(用于检查与主机的连接性)。我通过 U 盘将其从 Windows 7 笔记本电脑传输到 Ubuntu 工作站,但文件显示为一堆乱码。我尝试重新保存并重命名文件,但无济于事。我尝试在另一个 Ubuntu 工作站上查看文件,结果还是一样。这并没有影响我的其他 Python 文件。我怀疑问题出在我的 U 盘上,因为我可以在笔记本电脑上完美读取它。

我最终决定将文件通过电子邮件发送给自己,问题就解决了。有人知道可能发生了什么吗?

答案1

根据您提供的信息,我怀疑这可能与 *nix 和 Windows 中使用的行尾不同有关。请查看这一页在维基百科上。

您可以使用可以转储 ascii 字符的实用程序检查行尾,以确认问题是否由行尾引起。在 Ubuntu 上,您可以使用hexdump

hexdump <filename> 

下面是一个示例,说明了两个系统之间的行尾差异。输入文件是一个名为sample.txt的简单文本文件,其中单词line1和line2位于不同的行上

$ cat sample.txt
line1
line2

在 Linux 系统上创建的 sample.txt 的输出

sample.txt:
00000000  6c69 6e65 310a 6c69 6e65 320a           line1.line2.

在 Windows 系统上创建的 sample.txt 的输出

sample.txt:
00000000  6c69 6e65 310d 0a6c 696e 6532 0d0a      line1..line2..

要在行尾类型之间进行转换,请尝试dos2unix或者fromtodos

相关内容