【发布时间】:2014-01-29 16:43:22
【问题描述】:
我正在用 Python 开发 CGI 脚本。我在我的服务器上运行了一个基本的“Hello World”脚本,它运行良好,但是我尝试在我的 Windows 笔记本电脑上编写的所有内容(在 Sublime 文本 2 中)和复制都会引发 Apache 500 错误,没有任何调试信息。最后,我将 HelloWorld 脚本的文本复制到 windows 中,将其粘贴到 .py 文件中,然后将其复制回来,却发现它仍然无法正常工作。我认为这可能是权限错误,但是这两个文件具有完全相同的权限。在 nano 中,它们看起来完全一样,但一个有效,一个无效。通过使用sdiff,我发现它们有些不同,这表示它们是完全不同的文件,即使所有文本都相同。我尝试了十六进制转储,发现虽然文本相同,但 1 和 0 不同。有谁知道我是否可以在 python 中设置某种编码来防止 Apache 抛出错误?
我的终端屏幕截图并排显示文件和十六进制转储。 test.py 是正常工作的 linux CGI 脚本。 Orig.py 是我从 windows 复制过来的脚本。copy.py 是我制作的 test.py 的副本,用于演示当两个文件相同时 sdiff 的输出应该是什么.
更新:检查编码,两个文件都输出
text/x-java; charset=us-ascii
【问题讨论】:
-
行尾? Windows 使用
\n\r而 linux 使用\n,尽管我从来没有遇到过这个问题。顺便说一句:图像毫无用处。你不能从终端复制粘贴文本吗?