各种环境下的编码

1)操作系统的默认编码方式
  这是操作系统的内部属性,比如大多数Linux系统、Mac OS默认UTF-8编码,中文版Windows系统默认GBK编码。

2)终端的编码方式
  终端包括cmd、shell、terminal等,在与终端交互时,字符是要在终端显示的,这必然涉及到终端采用的编码方式,事实上有不少bug是在这个层面上产生的。对于单机系统而言,终端编码与操作系统的编码一般是一致的,但在远程登录时,可能会遇到一些问题。
  
  在windows中查看代码页的方法:cmd中输入chcp。
  在Linux中查看代码页的方法:在终端中输入locale 。

代码页是字符集编码的别称

  下图是本人在win10(英文版)中的演示:(bash为win10中自带的linux子系统)
  各种环境下的编码

3)文本文件的编码方式
  这是我们接触最多的概念,即一个文本文件(如源代码文件)是以什么编码格式保存的。大多数编码器可以显示文本的编码格式,以及更改编码方式重新存储。

4)程序中的字符、字符串变量的编码方式
  这与具体的编程语言相关,涉及到程序运行时变量在内存中的状态。