写在前面:
汉字在计算机内部用什么编码,没有任何限制,纯粹是软件开发人员自己决定的,如果开发人员自己发明一套编码,也没有问题。主流操作系统都支持多种模式的编码。
另外,机器内码不是一个准确的概念,内码泛指一切二进制编码,当然,不排除某些教材写的不准确或者年代比较早,弄错了这个概念。
1.汉字在计算机硬盘里面保存的数据是什么编码?机内码?
前面说了,由软件自己决定。可以是GBK,也可以是UTF-8/UTF-16
2.windows 操作系统处理汉字数据时在内存里面用的是什么编码?Unicode编码?它和机内码有关系吗?
同问题1,Windows上的软件现在都支持多种方式编码,具体用哪个,看软件自己决定。
一般来说,早一点的软件,用ANSI String或者Oem String的方式,具体对应到中文版本的软件,即使GB2312/GBK。后来随着Unicode普及,以UTF-16居多。但如果软件本身是从Linux过来的,那么可能是UTF-8(比如很多网页),eclipse之类的等。内核驱动中,一般使用UTF-16,但不强制。
至于机器内码,这不是一个准确的概念。
3.汉字的国标码和区位码、机内码、Unicode编码有关系吗?
国际码泛指一系列编码,不是一个准确的概念(包含GB2312/GBK)
机器内码同上
GB2312等同于区位码
Unicode跟GB2312/GBK没关系
4.计算机在传输汉字的时候,传输的是什么编码?例如:计算机串口发送汉字,用的是什么编码?
没有特定规则,完全靠软件自己定义,软件想按什么编码发,就按什么编码发。
5.计算机的TXT文档里面的汉字是什么编码?Unicode编码?机内码?
同问题4
采用何种编码,只是一种约定俗成的行为,没有严格规定软件必须采用什么编码,对于操作系统来说,很多时候,字符串就是一个字节流,具体字节流如何解析,是要软件自己设置的,如果软件没设置好,那么就会出现乱码。