【发布时间】:2019-05-11 07:40:23
【问题描述】:
这是一个如此基本的问题,我很惊讶我无法轻易找到答案:
我使用 Notepad++ 编写脚本。有人给我发了一些 shell 脚本 (.sh) 的代码,我可以根据自己的需要进行修改。我只是使用 Notepad++(在 Windows 上)更改了一小部分文本,并使用 FileZilla (SFTP) 将其上传到我的服务器(Debian Linux)。
我的服务器管理员花了一个小时才找到一些问题,即:
- FileZilla,无论出于何种原因,默认为 ASCII 而不是二进制! (将其更改为二进制并删除 .sh 与 ASCII 的关联)
- 权限错误,chmod 解决了这个问题
问题是它仍然没有工作。为了修复它,我的服务器管理员只需将服务器上的文本(使用 vim 或 nano)复制到一个新的 shell 脚本文件中并保存。在他一直说问题是 Windows(他喜欢讨厌)之前,但似乎是文本编辑器使用的编码正在破坏文件。
他说我的文本编辑器编码需要说“无”。但是,这不是一个选项 - 只有 ANSI、UTF 和 UTS 变体是选项!
如何在 Windows 上创建一个带有 no 编码的 shell 脚本,以免损坏?
我需要能够简单地将文件传输到服务器,我不能在服务器上修改一次,这是完全不切实际的。
【问题讨论】:
-
@BasileStarynkevitch 文件已经是 UTF-8,他表示这是问题所在
-
@BasileStarynkevitch 澄清一下,如果你知道如何让 UTF-8 在这里工作,我也会接受,但我没有在那个链接中找到任何对我有帮助的东西。跨度>
-
文本编辑器显示text,但是文件包含bytes,所以没有编码就无法保存文件!你可能想要的是纯 ASCII 编码,但如果你有非 ASCII 字符,那将不起作用。
-
Notepad++右下角编码“UTF-8”的左边,点击Convert UNIX(LF) format。如果不是这种情况,请务必将编码更改为 UTF-8。
标签: linux windows encoding notepad++