批处理文件开头的奇怪字符 (´??)

Can*_*uke 35 windows encoding batch

我正在 Windows 中处理批处理文件,同时使用 Notepad 和 Notepad++。当我运行所有以 开头的批处理文件时@echo off,我看到第一行(在两台不同的机器上运行时)读取´??@echo off,然后它下面的所有 REM 行也出现。

我曾尝试更改 Notepad++ 中的编码,但它声称它们已经采用 UTF-8 编码,这似乎是正确的。

我需要做什么才能使这些文件正常运行?

bao*_*han 32

它看起来像 UTF-8 字节顺序标记的 DOS ASCII 编码(0xEF 0xBB 0xBF)http : //en.wikipedia.org/wiki/Byte_order_mark

在 Notepad++ 中,尝试将其编码为“无 BOM 的 UTF-8”或纯 ASCII。我认为出于这个原因,不鼓励对 UTF-8 使用 BOM,它与 ASCII 并不完全向后兼容。

  • 完全正确,除了“DOS ASCII”是 DOS 代码页 850,如在 Python 中的实验所示:`>>> print u'\ufeff'.encode('utf8').decode('cp850') ´╗┐` (2认同)
  • 我在使用 Visual Studio 创建新文本文件时遇到了这个问题。 (2认同)

Can*_*uke 12

原来它需要设置为ANSI编码才能正常工作。为了设置这个,我选择了Encoding -> Encode in ANSI

为了解决这个问题,我尝试从命令行创建一个批处理文件。

echo @echo off > batch.bat
echo REM Some comment... >> batch.bat
echo echo Hello world! >> batch.bat
Run Code Online (Sandbox Code Playgroud)

然后我在 Notepad++ 中打开这个文件,并检查右下角的编码,将ANSI读取为 UTF-8。我不知道为什么它添加了最后一点,但它现在似乎起作用了。


归档时间:

查看次数:

31157 次

最近记录:

11 年,3 月 前