关于gb2312编码和utf8码的一个问题

时间:2022-01-27 22:18:24

ANSI(注意拼写不是ASCII)并不是“一种”编码,而是“多种”编码的统称。在简体中文Windows上,ANSI指GBK编码;在繁体中文Windows上,ANSI指Big5编码;在英文Windows上,ANSI指cp437编码。

我们知道windows自带的记事本默认使用ansi编码,而对于中国人来说,ansi默认为GBK(因为安装的是中文windows操作系统,集成的字符集是GBK,GBK中国人制定的编码标准,(毕竟asc码只记录了英文字母与一些字符,而没有记录汉字)是ask码表的扩展,在GBK中,如果这个字节的大小小于等于127,则与ask码保持一致,如果大于这个,则这个字节包括后一个字节组成一个字符来共同表达一个汉字。世界上其他国家也制定了类似GBK的本名族语言的编码,他们也都是asc码的扩展,比如泰国的叫TIS-620,。,儒泰文版的windows集成的编码就是TIS-620,如果用这台电脑的记事本编码,保存的编码格式选ANSI,则实际采用的编码形式就是TIS-620)。

 

我们用记事本写下汉字 更哥哥万维通港,直接保存退出。我们用notepad++的16进制查看器查看下这个文件,查看到确实是用默认的GBK编码的。好的,此时我们关闭退出,然后在打开刚才的记事本,在更哥哥和万维通港之间加一个京字。也就是说,内容变为更哥哥京万维通港。然后保存退出。按理说,我们再用16进制查看器查看下,应该还是GBK编码,但是神器的事情发生了,此时的编码变成了utf8.我们再关闭,再用记事本把京字删除,保存退出后再用16进制查看器查看下,这个编码又回归到了GBK。这是怎么回事??