编码问题

2019-11-17  本文已影响0人  抽象的海宁

utf8和gbk的噩梦

  1. 他们之间的关系
  2. 他们和c++的关系
  3. 他们和文件的问题
    4.还有和编译器的关系
    5.还有和程序看内存的关系

这几个问题

首先,字符是要村子内存中的,不同编码,在内存中的值是不同的.由图可以看出内存的值不一样的.

image.png
image.png

他们和c++的关系

这是我瞎扯的,他们和c++的关系,编译器读文件,发现这个字符,然后把赋值给对象.


那么对象的内存里面的值会因为什么不同呢


我们继续做实验

  1. 我改了一个地方,程序没变.


    image.png

你需要和上面对比,要和第一张对比


  1. 是的,值变了,那是为什么呢,我改了什么呢.
  2. 我改了这个cpp文件的编码格式
    image.png
    这是前后的文件格式的对比.

答案来了

程序运行的时候,是读文件,文件的值是什么,变量的值就是什么
在不同文件格式的中的内存值是不同的

继续

他们和文件的问题也解决了,好像,再加一个问题,他们和运行环境的关系

重新把文件社会utf8


image.png

终端输出gbk乱码,怎么解决呢


把程序设成处理gbk的环境.这样他看内存的样子就是gbk的眼睛.

image.png

你和上面的图对比,会发现输出gbk的时候是正确的.就是让程序看内存的时候,用gbk的眼睛去看.


希望看到的人,能有编码有个理解

上一篇 下一篇

猜你喜欢

热点阅读