源文件字符编码导致程序运行结果异…

来源:互联网 发布:济南大学软件外包 编辑:程序博客网 时间:2024/06/05 09:08
linux下遇到一个工程,其中两个文件中有中文数组,程序中需要对比这两个中文数组作判断,
编译OK,但是执行结果不对,debug后发现,两个文件的编码不一样(一个UTF8 一个ISO-8859),
同一个中文在程序中的对应的byte不一样,导致比较总是不成功。

用Notepad++转换编码,对gcc而言一般是UTF8



对简体中文windows,vs一般支持的gb18030, 而gcc一般支持的是utf8, 为了跨平台,需要给源码一个统一的
编码方式,
1 统一utf8, 不行
  utf8似乎又分有BOM和无BOM两中,gcc和vs在这一点上竟然冲突
2.统一gb18030 部分可行
 gcc下可以用选项-finput-charset=gb18030支持该文件,但对英文版的windows不行
3.gnu有一个gettext()项目,解决该问题,非asscii字符需要独立存储
0 0
原创粉丝点击