问题描述
(1)代码文件
我的项目不是标准的qt工程,只是些单纯的.c文件和.h文件构成,其中数据库用到了proc,所以也包含.pc文件。
(2)问题出现
在我用qtCreator打开其中的.h文件或.pc文件进行编辑、保存后,发现再用proc将.pc编译成.c的过程中报错(修改之前能正常编译的),报错为PCC-S-02201,然后下面一堆文字说什么符号有问题。在排除代码问题后,发现有可能是文件的编码有问题。
问题原因发现
因为之前的代码有用git备份,后来用git diff对比修改前后的文件后,发现修改后的代码中第一行出现了“<U+FEFF>”,又用less命令查看文件内容后(使用less命令,其他命令可能看不到效果),发现代码开头果然出现了没有显示的字符“<U+FEFF>”,于是开始问度娘这是啥玩意。
看了两篇博客即解决了我的问题:
https://www.cnblogs.com/jessezeng/p/6729690.html
https://blog.csdn.net/u011734144/article/details/79040659
解决办法
(1)vim
用vim打开文件,设置nobomb。即在命令模式下输入
:set nobomb
(2)qtCreator设置
vim设置治标不治本,下次用qt编辑时还是会出现一样的问题,于是查看了qt的设置,将UTF-8 BOM设置为总是删除即可。
菜单->工具->选项->文本编辑器->行为->文件编码->UTF-8 BOM
网友评论