首页 > 其他分享 >【转帖】UTF-8编码发展历史

【转帖】UTF-8编码发展历史

时间:2024-01-31 10:33:41浏览次数:26  
标签:编码 UTF 字节 字符 符号 转帖 Unicode

https://www.jianshu.com/p/ea91ff32a3c0

 

1. 美国人首先对英文字符编成ASCII码,用一个字节中的低7位表示英文128个字符,高1位统一为0

2. 欧洲人字母上存在注音符,128位不够用,即采用高1位,最多可表示256位

3. 不同国家字符编码不一致,虽然0--127表示的符号是一样的,但是128--255的含义不一致,例:135在法语,希伯来语,俄语编码中完全是不同的符号。

4.中国有10万多个汉字,256也不够用,于是产生了GB2312汉字编码,用2个字节表示绝大部分的常用汉字,最多可以表示65536个汉字字符

5. 由于每个国家字符集编码不同,为了保证全世界通用性,产生了Unicode编码,它将每一个符号都给予一个独一无二的编码,现在Unicode可以容纳100多万个符号,每个符号的编码都不一样

6. Unicode 编码 虽然统一了全世界字符的二进制编码,但没有规定如何存储,如果Unicode统一规定每个符号用三个或四个字节表示,那么每个英文字母前都必然有二到三个字节是0,文本文件的大小会大二三倍,这对于存储来说是极大的浪费

7. Utf-8则是Unicode最重要的实现方式之一,另外还有utf-16utf-32等。UTF-8是一种变长的编码方式,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。这是种比较巧妙的设计,如果一个字节的第一位是0,则这个字节单独就是一个字符;如果第一位是1,则连续有多少个1,就表示当前字符占用多少个字节。 

8. 注意unicode的字符编码和utf-8的存储编码表示是不同的,例如"严"字的Unicode码是4E25,UTF-8编码是E4B8A5,UTF-8编码不仅考虑了编码,还考虑了存储,E4B8A5是在存储识别编码的基础上塞进了4E25。 

9.UTF-8 使用一至四个字节为每个字符编码。128 个 ASCII 字符(Unicode 范围由 U+0000 至 U+007F)只需一个字节,带有变音符号的拉丁文、希腊文、西里尔字母、亚美尼亚语希伯来文阿拉伯文、叙利亚文及马尔代夫语(Unicode 范围由 U+0080 至 U+07FF)需要二个字节,其他基本多文种平面(BMP)中的字符(CJK属于此类-Qieqie注)使用三个字节,其他 Unicode 辅助平面的字符使用四字节编码。 

10.通常中文汉字在utf-8中是3个字节,最常见的编码方式是1110xxxx 10xxxxxx 10xxxxxx。

标签:编码,UTF,字节,字符,符号,转帖,Unicode
From: https://www.cnblogs.com/jinanxiaolaohu/p/17998684

相关文章

  • jmeter 接口测试响应unicode编码为中文显示
    添加一个后置处理器beanshellpostprocessor, public StringresUnicoding(StringresMsg){   String[]asciis=resMsg.split("\\\\u");   StringnativeValue=asciis[0];   try   {      for(inti=1;i<asciis.length;i++......
  • http encode 编码
    uses System.NetEncodingvars:string:=TNetEncoding.URL.Encode('123');//123vars2:string:=TNetEncoding.URL.Encode('abcd');//abcdvars3:string:=TNetEncoding.URL.Encode('ab1cd2');//ab1cd2vars4:string:=TNetEn......
  • 【HZERO】编码规则
    编码规则https://open.hand-china.com/document-center/doc/component/163/15075?doc_id=135217&_back=%2Fdocument-center%2Fsearch%3Fs%3D%25E7%25BC%2596%25E7%25A0%2581%25E8%25A7%2584%25E5%2588%2599&doc_code=28993#修改层级段值添加变量......
  • [转帖]Oracle获取被锁的SQL源头
    https://blog.csdn.net/weixin_42233789转载:https://blog.csdn.net/robinson1988/article/details/106204387各位DBA,看到这篇文章是不是很开心,解决了你一个大麻烦,赶紧把它部署到实时监控程序吧(咳咳,转载,抄袭不注明文章出处的人可耻哈)session1:updateemp_baksetename=......
  • [转帖]SQL SERVER--- 排序规则、数据类型
    https://zhuanlan.zhihu.com/p/162933497 一、排序规则有时候我们向数据库插入文本时,会出现乱码“?”,这时有可能是我们创建数据库没有设置好排序规则以Chinese_PRC_CI_AS为例前半部分Chinese_PRC指的是针对大陆简体字unicode的排序规则后半部分的含义为:_BIN二进......
  • 提升编码幸福感的秘密「GitHub 热点速览」
    写代码是一个充满挑战的事情,在这段充满挑战的旅途中,我们都渴望找到那个提升幸福感的秘密。没准是更先进或是更快的工具,希望本期热点速递的开源项目,能给你带来启迪和乐趣,上菜!第一个上场的是一款用Rust写的代码编辑器:Zed,因为它足够快、足够先进。全栈不等于全占Expo让你用一套......
  • notepad怎么保存utf-8格式 菜单栏"编码”下拉菜单中选择“UTF-8” 或者Encoding选择 U
    notepad怎么保存utf-8格式菜单栏"编码”下拉菜单中选择“UTF-8”或者Encoding选择UTF-8,或者菜单栏-格式->以UTF-8无BOM格式编码要在Notepad中保存UTF-8格式,可以按照以下步骤操作:1.打开Notepad,然后新建一个文本文档。2.将要保存为UTF-8格式的文本复制粘贴到Notepad中。3.点......
  • UTF-8格式编码的文件分为带BOM和不带BOM windows下编程,Linux下编程建议使用“UTF-8无
    UTF-8格式编码的文件分为带BOM和不带BOMwindows下编程,Linux下编程建议使用“UTF-8无BOM格式,“建议使用”UTF-8带BOM格式“Notepad++支持“UTF-8无BOM格式”和“UTF-8带BOM格式”两种UTF-8。一直以来不知道二者有什么区别。程序员它们的区别是:UTF-8带BOM格式,就是在文件头添加......
  • pycharm新建文档自动显示编码格式和作者信息等信息
    1.设置方法setting--editor--fileandcodetemplates--选择pythonscript--输入信息模版--apply2.信息模版--coding:utf-8--"""Author:wrTime:${DATE}${TIME}File:${NAME}.pySoftware:${PRODUCT_NAME}"""从上到下依次是:作者:时间:文件名:ide名称:还......
  • 前端获取视频编码
    https://github.com/gpac/mp4box.jsvarMP4Box=require('mp4box');//Orwhateverimportmethodyouprefer.varmp4boxfile=MP4Box.createFile();mp4boxfile.onError=function(e){};mp4boxfile.onReady=function(info){//info->codec{&......