gcc 我怎样才能摆脱文本文件中的特殊字符?(类Unix)

lokaqttq  于 2023-05-18  发布在  Unix
关注(0)|答案(2)|浏览(203)

我有一个源代码文件,它是从网页上的一些示例代码的副本开始的。它是在Windows下创建和编辑的,编译没有任何问题。
但是在Macs下,我得到了一堆模糊的错误,比如:

../MyProgram.cpp:1: error: stray '\255' in program
../MyProgram.cpp:1: error: stray '\254' in program
../MyProgram.cpp:1: error: stray '#' in program

../MyProgram.cpp:3:4: error: invalid preprocessing directive #i
../MyProgram.cpp:5:4: error: invalid preprocessing directive #i
../MyProgram.cpp:7:4: error: invalid preprocessing directive #i
../MyProgram.cpp:23: error: missing terminating ' character
../MyProgram.cpp:369:6: error: invalid preprocessing directive #i
../MyProgram.cpp:371:8: error: invalid preprocessing directive #i
../MyProgram.cpp:375:8: error: invalid preprocessing directive #e
../MyProgram.cpp:381:8: error: invalid preprocessing directive #e
../MyProgram.cpp:383:6: error: invalid preprocessing directive #e
../MyProgram.cpp:385:8: error: invalid preprocessing directive #i
../MyProgram.cpp:389:8: error: invalid preprocessing directive #e

../MyProgram.cpp:1: error: 'i' does not name a type
../MyProgram.cpp:53: error: 'V' does not name a type
../MyProgram.cpp:75: error: 'v' does not name a type
../MyProgram.cpp:157: error: 'l' does not name a type
../MyProgram.cpp:169: error: 'l' does not name a type
../MyProgram.cpp:187: error: 'i' does not name a type
../MyProgram.cpp:197: error: 'v' does not name a type

看起来问题出在一些特殊字符上。
我怎样才能用一个类Unix的命令行把它们去掉呢?

rjzwgtxy

rjzwgtxy1#

在我看来,该文件好像保存为UTF-16。在文本编辑器中打开它并重新编码为UTF-8,如果运气好的话,应该可以解决这个问题。

izj3ouym

izj3ouym2#

最初,我只是说如何删除\255和\254字符,但我同意的意见。在Unicode中。
尝试用iconv转换它:

iconv -f iso-8859-1 -t utf-8 infile > outfile

iso-8859-1只是一个猜测。

相关问题