开发环境的坑

 

编码问题:

  一个文本可以有很多种编码。

  汉字编码有:

    GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。

    BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。

    GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。

    GB18030编码:2000年3月17日发布的汉字编码国家标准,是对GBK编码的扩充,覆盖中文、日文、朝鲜语和中国少数民族文字,其中收录27484个汉字。GB18030字符集采用单字节、双字节和四字节三种方式对字符编码。兼容GBK和GB2312字符集。

    Unicode编码:国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换。

    UTF8编码:(包含UTF8 without BOM)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。

  这些编码对同一个字的表示方法不一样,用错了  要么显示不出来,要么乱码。

  英文在其中很统一:ASCII 永远一个字节,所有编码里面都兼容(Unicode里面好像有变化)

 

  复制文本到KEIL 里面 或者 串口打印 的时候出现乱码的问题就是他咯。

  copy代码的时候留意一下。

 

回车换行:

  在不同环境下回车是不一样的。  Windows下一个回车按键是两个字符  \r\n    Linux 下  是   \n     Mac 下是   \r  。 有人问,为什么不统一?   历史遗留问题,无解。

  win下写 Shell 脚本到linux 为什么不能运行?   回车问题是其中一个。

  copy前 注意一下。

 

C语言的坑:

  enum 长度不固定。  跨平台的时候  悠着点。 尽量避开。

  enum 长度方面的定义是,满足 枚举值 的最小长度。  

  编译器根据运行机器会插一脚,并不是最小长度最大性能。编译器优化的时候会让这个长度变成摇色子。

  做通讯,做dll的时候     避开他,别无他选。

 

  指针大小。  不同位宽的CPU 指针长度是不一样的。   跨平台的代码 小心。

 

你可能感兴趣的:(开发环境的坑)