我今天遇到了一件极其奇怪的事。
事情是这样的:我在工作中使用 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..