0
点赞
收藏
分享

微信扫一扫

青少年编程与数学 02-002 Sql Server 数据库应用 18课题、性能监控

冬冬_79d4 2024-11-06 阅读 11

MS C编译器

MS C编译器会把源程序转换为当前代码页编码的源程序。

  1. 如果源程序是ANSI(当前代码页936)编码,直接编译;
  2. 如果源程序是不带BOM的UTF-8,则编译的时候需要加-source-charset:UTF-8;
  3. 如果源程序是带BOM的UTF-8、UTF-16LE、UTF-16BE,直接进行编译。

GCC

GCC编译器不执行转换源程序为当前代码页编码的源程序,它假定源程序是UTF-8编码。

1、如果源程序是ANSI(当前代码页936)编码,直接编译;

2、如果源程序是ANSI(当前代码页936)编码但如果有wprintf打印L””的字符串,则需要添加编译选项-finput-charset=gbk;

3、如果源程序是UTF-8,无论带不带BOM,都能正常编译,但打印乱码,需要增加编译选项-fexec-charset=gbk;

4、如果源程序是UTF-16,则如果源程序包含了其它ANSI头文件和库函数,则无法进行编译,若不包含其它ANSI头文件和库函数,则可以通过增加-finput-charset=utf-16le或-finput-charset=utf-16be来编译源文件。

wprintf打印带中文的字符串,需要在源程序中添加setlocale(LC_ALL, "");

举报

相关推荐

0 条评论