万博法务网站,指数是什么意思,浙江怎么制作网站,网站目录结构模板及时了解“编码”对编写代码的影响#xff0c;是中国程序员越早知道越好的知识点。 一分钟了解什么叫“编码”和“解码”#xff1b;通过实际演示#xff0c;充分理解中文Windows下#xff0c;C源代码编码需要注意的地方#xff1b;通过 -finput-charsetutf8 等 g 编译配置… 及时了解“编码”对编写代码的影响是中国程序员越早知道越好的知识点。 一分钟了解什么叫“编码”和“解码”通过实际演示充分理解中文Windows下C源代码编码需要注意的地方通过 -finput-charsetutf8 等 g 编译配置实现在Windows下使用utf8编码源文件编写需跨平台编译的C代码的更多方案 1. C源文件中的汉字编码问题
由于历史原因Windows 中文版系统默认的文字编码为中国国家标准比如 GB18030。
国标文字编码对汉字和英美字母等支持得比较好但对同样需要特殊编码的其他国家的文字就力不从心了比如日本韩国等。遇到需在同一个文档比如同一个 cpp 源文件中包含以上多个国家的文字相关支持亦发捉襟见肘。
如果所写的C源代码需要在 Windows、MacOS、Unix、Linux 等多个操作系统下编译那么需要为C源文件考虑选择合理编码。
考虑现状当前主流操作系统除Windows系统以外各种Unix/Linux以及MacOS对多国的文字的支持基本都只使用一种方案UNICODE。UNICODE 编码自身又有多种表达其中 utf-8 可以比较好兼容非常早之前的纯英文字符的 C/C源代码。因此跨平台的 C 源代码编码方案通常使用 utf-8 编码 再辅之于C支持的编码转换手段。
Windows 控制台默认对本地编码中文Windows下即为GB18030等编码支持较好因此在C源代码中直接使用 utf-8 编码的汉字字符串输出到控制台会显示为乱码。
视频中演示了一种使用utf-8编码C源代码且能在 Windows 控制台内正常显示汉字的方法设置编译器 (g) 编译选项
-finput-charsetutf8-fexec-charsetgbk
第一项告知 g 编译器当前源文件编码为 utf-8第二项要求 g 编译器生成可执行文件时将 utf-8编码的 内容转换为 gbk 编码。
显然当同一份源代码改为在 Linux 等系统下继续使用 g 编译时只需去除以上第2个配置项即可因为 Linux 等系统的默认编码即为 utf-8。
事实上第一个配置项也可以去除因为 g 也默认源代码使用的是 utf8 编码。 2. 课堂视频 ffls07-HelloWorld-中文版