zoukankan      html  css  js  c++  java
  • day02-03 字符编码

    文本编辑器打开原理

    打开编辑器后操作系统后台启动一个进程,所编辑的文字存放在内存。若期间断电,则数据丢失。若做了保存,则将编辑文字从内存刷到硬盘上。

    计算机只认二进制,为什么人通过编辑器编辑文字,计算机能够识别呢?

     当打开编辑器后编辑文字,文字通过字符编码翻译成了计算机可识别的二进制存放于内存。反之人阅读文字,是将内存中的二进制流通过字符编码翻译成人可识别的文字。

    假若此二进制流用其他字符编码翻译,这是乱码的由来。

    字符编码发展史

     早先美国发明了ASCLL编码,计算机可以将英文翻译成二进制流。但中文,日文等其他文字认不了,于是各个国家先后出GBK编码,Shift_JIS编码等。于是乎全世界多出了

     太多字符编码。

     为了统一起来,出现了unicode编码。常见一个字符2字节,生僻字4字节。

     新的问题出现了,unicode编码全篇英文占用过多空间且网络传输数据量大,于是可变长的uft-8编码出现。于是英文1个字节,汉字3字节,生僻字6字节,大幅优化了。

    字符编码在内存中以及在硬盘上的表现形式

    当前内存中编码固定是unicode,只有硬盘的上字符编码可以更改。硬盘一般不用unicode编码,因为太吃空间,浪费IO,降低程序效率。所以硬盘一般为字符编码utf-8(用1Bytes存英文,3Bytes存中文)。内存中用unicode可以兼容万国软件,因为unicode有针对各国软件字符编码的各种映射关系。现在常见情况下硬盘上的字符读取进内存时,需要将utf-8转成unicode。以下为对应硬盘--字符集--内存关系。

    unicode----->encode-------->utf-8

    utf-8-------->decode---------->unicode

     

  • 相关阅读:
    Jmeter跨线程组传值
    python基础之高级函数
    Python基础之函数的应用
    python基础之文件的输入输出
    python基础练习之猜数字
    折腾了两天的跨站脚本提交问题,与IIS7有关
    python简介和环境搭建
    python paramiko
    Linux rsync 企业级应用
    Linux find 命令详解
  • 原文地址:https://www.cnblogs.com/yujiebin/p/10061405.html
Copyright © 2011-2022 走看看