Xcode文件中文注释乱码问题

作为一名iOS开发,
因为目前我工作的工程里有很多c++/c的文件,这些文件时之前开发pc程序的时候,有一些是可以公用在iOS端的,所以直接拿过来放到xcode工程使用,这是我的猜测,但很有这个可能,因为如果是在Xcode建的文件,不会出现编码问题,只有从其他平台拿过来的文件,比如windowns上的,默认的文件编码方式一般都是gb2030啥的,而macOS上的文件是utf-8编码的,所以造成中文乱码。

很多注释都是中文,变成了乱码,对理解代码就非常不方便,比如一些数据结构的定义,完全不知道这个数据干嘛的,或者一个方法干嘛的,转成中文势在必行,所以进行了一番探索。


image.png

以上是背景,下面来看看解决办法:

  1. 最开始是在Xcode里,在文件配置地方改成utf-8,但是发现不起作用,放弃~


    image.png

    image.png

2.show in finder , 然后以文本编辑方式打开,大部分显示问题可以解决,此时保存,关闭,回到Xcode中中文也确实不乱码了,但是别高兴得太早,下次你重新打开Xcode中文还是变成了乱码,并且在你用svn准备提交的时候,这里并没有什么变化,意思也就是,虽然你解决了现显示问题,但是文件本身还是没有变化,原因不详,或许以这种方式根本就没有改变文件的编码方式。


image.png

3.使用了一个牛人的插件,与原理大概就是猜测原文件编码格式,一个一个格式的试,猜对了就能转成中文,
意思跟网页上的一个工具大体类似
http://www.mytju.com/classCode/tools/messyCodeRecover.asp

image.png

这个插件我的github上上传了一份,https://github.com/CoderRWL/GB18030-utf-8.git
安装后,就可以在文件上右键,选择转换

image.png

这个也可以解决大部分问题,但是我发现这个插件好像有长度限制,如果我的文件里的内容比较多,我的可能就1千行左右,发现只有一部分转换了,而剩余的部分却丢失了,也就是删除了文件后面部分内容,我猜测,插件程序写的时候可能写死了一个最大长度的输入,输出就是全部覆盖原来的内容,这里我们就不再论证了,我建议对于内容比较少的文件可以只用此插件转换,且转换后你自己也要检查下文件是否有缺失,如果有就还原吧,我是使用的svn还原,还算比较方便,如果你没有使用版本管理工具的,使用前就得自己备份一份,方便后面找回。

4.使用命令行,

cd到文件,使用:find *.h -exec sh -c "iconv -f GB18030 -t UTF8 {} > {}.txt"
可以批量转换,也有单个文件转换,这里就不再介绍了

5.最后还有一个笨方法,就是把文件用windwns上的开发工具打开,我使用Visual Studio打开,也可以把乱码转成中文,然后保存,在替换到Xcode工程里,注意看下svn上的变化是否最后变成了中文.

上面就是自己的使用过的一些方法了,怕忘记,暂记于此~

你可能感兴趣的:(Xcode文件中文注释乱码问题)