c/c++中涉及中文编码问题的解决方法

使用c/c++读取中文内容的文档时,经常会出现因为编码问题,读取失败的问题。

比如某个文件的内容是中文的,但是其编码方式是cp936,这是如果使用fopen,就可能出现问题。

这里采用shell命令中的iconv方法,转换文档编码,将其转为utf-8,就可以实现中文内容的正确读取。

关于iconv的用法如下

iconv -f 源文件编码 -t 目标文件编码 -o 目标文件 源文件

这里需要主要的是,目标文件和源文件不能是同一个文件,我这里运行时出现了buss error

如果想进行in-place操作,可以用一个临时文件进行替换,再用比如mv命令重命名该临时文件为源文件名即可

这里有一个疑问,就是,如何自动知道源文件编码,实现自动化替换,有谁知道吗,求指导

你可能感兴趣的:(C/C++,Linux)