向文件添加文本,导致 utf-8 编码无效,并且在 macos 上编译失败

adding text to file, results in invalid utf-8 encoding, and fail compilation on macos

我正在使用 macOS Big Sur 11.4,我试图编辑一个 .c 文件并向其中添加一些逻辑,然后使用看起来像这样的 setup.py 文件对其进行编译:

from distutils.core import setup, Extension

module1 = Extension('myfile',
                    sources = ['myfile.c'],
                    extra_link_args = ['-framework', 'IOKit'])

setup (name = 'myfile',
       version = '0.1.1',
       description = 'test',
       ext_modules = [module1])

我正在尝试编辑的文件 (myfile.c) 稍后将使用命令行编译和安装:python setup.py install。到目前为止非常简单。

当我编辑代码的任何部分时,甚至添加像这样的简单注释://test 到我的 .c 文件,在尝试编译时我收到:

...
myfile.c:625:16: error: source file is not valid UTF-8
<U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><U+0000><F8><FF><FF><FF><FF><FF><FF>
...
warning: null character ignored [-Wnull-character]
# 1 "<built-in>" 3
...
error: source file is not valid UTF-8
...

<U+0000>的数量等于我添加的字母、空格、字母等的数量...

删除我添加的行“解决”了 UTF-8 编码问题。 我尝试过但没有奏效的事情:

我感觉我的键盘输入有问题,但我不确定是什么原因。值得一提的是,我过去曾使用 PyCharm 编辑过该文件,我没有遇到任何问题。

编辑: 我已经使用 xxd 检查了文件 hexdump,实际上一切看起来都很正常,我在十六进制转储中没有看到 unicode 字符

好的,所以我没有完全解决它,但我找到了解决方法,而且我忘了在这里提到一些重要的事情 我实际上是通过 VM 共享文件夹 (VMware Fusion) 从 VM 编译的 在我的主机上编码时。

无论如何,我没有使用共享,而是使用 scp 复制了文件,然后我没有编码问题...没有完全解决问题,但现在我可以接受了。