向文件添加文本,导致 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 编辑文件,因此将文件编码从
File > File Properties > File Encoding
更改 我已经尝试了几种不同的编码(不包括 UTF-8)。 none 有效
- 为确保这不是 pycharm 问题,我还尝试编辑 XCode 和 VIM 中的代码,两者都导致了相同的错误
我感觉我的键盘输入有问题,但我不确定是什么原因。值得一提的是,我过去曾使用 PyCharm 编辑过该文件,我没有遇到任何问题。
编辑:
我已经使用 xxd 检查了文件 hexdump,实际上一切看起来都很正常,我在十六进制转储中没有看到 unicode 字符
好的,所以我没有完全解决它,但我找到了解决方法,而且我忘了在这里提到一些重要的事情
我实际上是通过 VM 共享文件夹 (VMware Fusion) 从 VM 编译的
在我的主机上编码时。
无论如何,我没有使用共享,而是使用 scp
复制了文件,然后我没有编码问题...没有完全解决问题,但现在我可以接受了。
我正在使用 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 编辑文件,因此将文件编码从
File > File Properties > File Encoding
更改 我已经尝试了几种不同的编码(不包括 UTF-8)。 none 有效 - 为确保这不是 pycharm 问题,我还尝试编辑 XCode 和 VIM 中的代码,两者都导致了相同的错误
我感觉我的键盘输入有问题,但我不确定是什么原因。值得一提的是,我过去曾使用 PyCharm 编辑过该文件,我没有遇到任何问题。
编辑: 我已经使用 xxd 检查了文件 hexdump,实际上一切看起来都很正常,我在十六进制转储中没有看到 unicode 字符
好的,所以我没有完全解决它,但我找到了解决方法,而且我忘了在这里提到一些重要的事情 我实际上是通过 VM 共享文件夹 (VMware Fusion) 从 VM 编译的 在我的主机上编码时。
无论如何,我没有使用共享,而是使用 scp
复制了文件,然后我没有编码问题...没有完全解决问题,但现在我可以接受了。