codeblocks默认源代码文件编码根据OS而定,编译时编码UTF-8。 在你不更改任何codeblocks配置时:                    在WINDOWS中:源代码——WINDOWS-936(即GBK),编译后文件默认UTF-8 而输出windows会按GBK来解释             ,所以从GBK->UTF-8->GBK就是乱码; 在LINUX中:源代码——UTF-8,自然从源代码到编译到输出都是UTF-8,因此没有乱码; WINDOWS中:设置如下settings->compiler->Other options中增加2条命令 -finput-charset=GBK编译时用GBK格式 不指定默认UTF-8 -fexec-charset=GBK生成执行文件时用GBK格式  不指定默认UTF-8

UTF-8是变长编码,一个字符可能是1至4字节,处理起来不太方便。 于是Linux等平台也提供了wchar_t类型,只不过它是32位的,在Windows平台中它是16位。

为了保证代码的可移植性,推荐使用UTF-8编码来保存代码文件。 因现在Linux等类UNIX平台默认使用UTF-8编码,gcc等编译器也是默认使用UTF-8编码。 而且它们既支持“不带BOM的UTF-8”(byte order mark,字节序标记),又支持“带BOM的UTF-8”。 VC++ 2003(或更高)开始支持“带BOM的UTF-8”编码的代码文件,但不支持“不带BOM的UTF-8”编码的代码文件 ,会被误认为系统默认编码(如简体中文平台上会误认为GBK编码)。

1.4 _tmain入口函数问题   标准C使用main函数作为程序入口,其格式为——int main(int argc, char* argv[])   VC++考虑到到TCHAR类型的命令行参数,于是又定义_tmain程序入口,其格式为——int _tmain(int argc, TCHAR* argv[])   目前VC++对_tmain的支持较好,而MinGW等编译器对_tmain较差,其只支持C标准的main。     如果想用_tmain则需要在工程中引入 https://github.com/coderforlife/mingw-unicode-main.h文件    // tchar.h中有类似如下的定义    #ifdef   _UNICODE      #define   _tmain   wmain      #define   _tWinMain   wWinMain      #else      #define   _tmain   main      #define   _tWinMain   WinMain      #endif

C 和 C++ 的标准库分别有自己的 locale 操作方法, C 标准库的 locale 设定函数是 setlocale(), 而 C++ 标准库有 locale 类和流对象的 imbue() 方法 #include <locale.h> char* setlocale(int category, const char* locale);

在Linux下,可以使用locale -a 命令查看系统中所有已配置的 locale。 用不带选项的 locale 命令查看当前 Shell 中活动的 locale。 用 locale -m 命令查看locale系统支持的所有可用的字符集编码。

codeblocks如何支持_tmain?可移植代码的编码推荐的更多相关文章

  1. 传感器(2)常用api简介及列出当前设备支持的传感器代码

    Android SDK提供了Android sensor framework,可以用来访问当前Android设备内置的传感器. ASF提供了很多类和接口,可以帮助我们完成各种与传感器有关的任务. 例如 ...

  2. 支持Git的代码托管网站

    支持Git的代码托管网站: https://github.com/https://code.google.com http://www.codeplex.com/ http://git.oschina ...

  3. Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如 ...

  4. C++静态代码分析工具推荐——PVS-Studio

    长假归来,最近一直没更新,节前本来就想写这篇了,一直到今天才有时间. 关于静态代码分析在维基百科上可以查到很详细的介绍:https://en.wikipedia.org/wiki/List_of_to ...

  5. 代码高亮插件推荐——SyntaxHighlighter++

    SyntaxHighlighter++这个插件的最大的优点就是可以在编辑器的下方有一个输入框,里面可以输入代码,然后插入到文章中.就不用编辑文章的时候,在可视化和文本之间来回切换了.非常适合不熟悉ht ...

  6. redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐

    redis安装 phpredis Jedis 扩展的实现及注意事项,php,java,python相关插件安装实例代码和文档推荐 1.Redis 官方网站下载: http://redis.io/dow ...

  7. 洗礼灵魂,修炼python(3)--从一个简单的print代码揭露编码问题,运行原理和语法习惯

    前期工作已经准备好后,可以打开IDE编辑器了,你可以选择python自带的IDLE,也可以选择第三方的,这里我使用pycharm--一个专门为python而生的IDE 按照惯例,第一个python代码 ...

  8. Discuz代码研究-编码规范

    Discuz中的编码规范很值得PHP开发人员借鉴.里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优化作了阐述,这 ...

  9. 分布式消息总线,基于.NET Socket Tcp的发布-订阅框架之离线支持,附代码下载

    一.分布式消息总线以及基于Socket的实现 在前面的分享一个分布式消息总线,基于.NET Socket Tcp的发布-订阅框架,附代码下载一文之中给大家分享和介绍了一个极其简单也非常容易上的基于.N ...

随机推荐

  1. php生成条形码: barcodegen

    实例结构: 1. index.html <!DOCTYPE html> <html> <head> <title>Test with embedded ...

  2. C# unicode GBK UTF-8和汉字互转

    界面: 源码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Da ...

  3. 使用Imagemagick批量加水印缩小图片的脚本

    安装Imagemagick首先要安装Imagemagick 本文HTML永久地址 doc CentOS上安装 yum install ImageMagick -yDebian上安装 apt-get i ...

  4. Swift协议+代理

    Swift语言开发中使用协议+代理的用法和oc中是一样的,只不过变得是语法.现在就进入swift的协议+代理. 先上个图,看看我们要实现的效果:  首先是第一个页面,然后点击到第二个页面,最后点击返回 ...

  5. 2018svn1

    Svn(Subversion) VisualSVN-Server是SVN的服务端.TortoiseSVN是客户端.D:\SVNRepositories是安装VisualSVN-Server时候选择的仓 ...

  6. [原创]java WEB学习笔记19:初识MVC 设计模式:查询,删除 练习(理解思想),小结 ,问题

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  7. 【leetcode刷题笔记】Merge k Sorted Lists

    Merge k sorted linked lists and return it as one sorted list. Analyze and describe its complexity. 题 ...

  8. import from 'xxx'是如何找到node_modules目录下的

    起初我认为这是ES6或者Webpack的语法,但查阅相关API后并没有相关说明,通过进一步地搜索,才知道这是Node模块系统的约定和实现(Webpack打包工具是兼容node模块系统的,自然遵守相关规 ...

  9. java入门了解08

    1.集合深入 (一)hashSet实现原理: 当我们添加一个元素,HashSet会计算出其Hash值,再根据hash值在哈希表中找出存储他的位置 有两种情况:a.如果算出的hash值在哈希表中位置没有 ...

  10. castle windsor学习-----Fluent Registration API 注册

    使用xml配置和fluent注册两种搭配使用需要注意的是: 如果先在WindsorContainer构造函数指明用xml配置进行注册,如下设置 IWindsorContainer container ...