在 WinSCP 中使用 UTF-8 无 BOM 编码创建新文件

在 WinSCP 中使用 UTF-8 无 BOM 编码创建新文件

我在用着温SCP以便通过 SFTP 与运行 Linux 发行版的远程服务器协作。我还使用记事本++(最新版本)作为我的文本编辑器(编辑远程文件时)。

当我使用 WinSCP 在远程服务器中创建一个新文件时,使用以下命令:

Right click > New > File...

Notepad++ 打开空文件,但编码显示为美国国家标准代替UTF-8(无 BOM),这是我的默认设置。我甚至在 Notepad++ 中启用了“应用于打开的 ANSI 文件”选项

Settings / Preferences / New Document / Encoding /
   UTF-8 without BOM / Apply to opened ANSI files

因此,我Encoding / Convert to UTF-8 without BOM每次都必须手动选择,如果由于某种原因我忘记了必须执行该步骤,那么文件将保存为 ANSI,这可能会引起麻烦。

有没有办法让新文件从一开始就编码为不带 BOM 的 UTF-8?

答案1

检查 Notepad++ 源代码,我可以看到“应用于打开的 ANSI 文件”选项标签错误。应为“适用于已打开ASCII文件”因为它仅适用于 7 位(ASCII)文件。

空文件被“检测”为 8 位(ANSI),因此该选项永远不会适用于空文件。

UniMode um = UnicodeConvertor.getEncoding();
if (um == uni7Bit)
{
    if (ndds._openAnsiAsUtf8)
    {
        um = uniCookie;
    }
    else
    {
        um = uni8Bit;
    }
}

当文件为空时总是UnicodeConvertor.getEncoding()返回。uni8Bit

我建议您将此报告为错误。


似乎也没有任何命令行选项来强制使用不同的编码。

答案2

这似乎已在 Notepad++ 6.4.5 中修复https://notepad-plus-plus.org/download/v6.4.5.html

修复 UTF-8(w/o BOM)检测错误。

但是,在 WinSCP 中新建文件,用 Notepad++ 打开时,编辑器右下角的编码显示为 ANSI。但是保存、关闭并再次打开文件时,编码为 UTF8。

相关内容