首页 > 其他分享 >字符编码详情

字符编码详情

时间:2022-12-15 10:03:22浏览次数:48  
标签:编码 UTF 字节 字符 详情 Unicode ASCII

一,ASCII编码。

       1、在计算机中,所有的数据在​​存储​​​和运算时都要使用​​二进制数​​​表示。而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫​​编码​​),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则。是用7位二进制位表示的,范围是:0000 0000 到 0111 1111。即表示从0~127,一共128个状态,对应128个符号。一般都是用8位二进制位表示ASCII,最高位全部都默认为0。这样就实现了现实生活中符号用计算机表示出来。ASCII定义了128个字符,包括33个不可打印的控制字符(non-printing control characters)和95个可打印的字符。32以下的及最后一个127是所谓的控制字符。(0x00~0x1F以及0x7F)。

数字 < 大写字母 < 小写字母。

       3、字符与二进制之间的一一对应关系如下:

字符编码详情_字节数

 

一,LATIN1编码。ISO-8859-1编码是单​​字节​​​编码,向下兼容ASCII。其编码范围是0x00-0xFF,0x00-0x7F之间完全和ASCII一致,0x80-0x9F之间是​​控制字符​​,0xA0-0xFF之间是文字符号。ISO-8859-1又称Latin-1,是一个8位单字节字符集,它把ASCII的最高位也利用起来,并兼容了ASCII,新增的理论空间是128,但它并没有完全用完。可以看到,新增部分也保留了前面的32个位置(中间绿色部分,0x80-0x9F),与前面的ASCII部分类似,所以实际只增加了128-32=96个,主要是西欧的一些字符,另外可以看到乘号(0xD7)和除号(0xF7)也被包含进来了。

一,Unicode编码。

一,UFT-8编码。按照Unicode编码,一个字符对应的Unicode码使用的bit位数,则对应到UTF-8的编码。实际表示ASCII​​字符​​​的UNICODE字符,将会编码成1个​​字节​​​,并且UTF-8表示与ASCII字符表示是一样的。所有其他的UNICODE字符转化成UTF-8将需要至少2个字节。每个字节由一个​​换码序列​​​开始。第一个字节由唯一的换码序列,由n位连续的1加一位0组成, 首字节连续的1的个数表示​​字符编码​​所需的字节数。Unicode转换为UTF-8时,可以将Unicode二进制从低位往高位取出二进制数字,每次取6位,如上述的二进制就可以分别取出为如下示例所示的格式,前面按格式填补,不足8位用0填补。

 

注:Unicode转换为UTF-8需要的字节数可以根据这个规则计算:如果Unicode小于0X80(Ascii字符),则转换后为1个字节。否则转换后的字节数为Unicode二进制位数减1再除以5。

 

字符编码详情_控制字符_02

 

一,UTF16编码。UTF-16是Unicode的其中一个使用方式。因为Unicode他是由2个byte组成的,但是大多数UTF-16也是2个byte组成的,也有4个byte组成的,如:中国文字大部份是两字节,有的是四字节。UTF-16却无法相容于ASCII编码。

该值的16位整数来表示。0x00 00 ~ 0xFF FF

    2、Unicode值介于0x10000和0x10FFFF之间的,即0x1 00 00 ~ 0x10 FF FF。用一个值介于0xD800和0xDBFF(在所谓的高8位区)的16位整数和值介于0xDC00和0xDFFF(在所谓的低8位区)的16位整数来表示。

    3、Unicode值大于0x10FFFF不能按照UTF-16进行编码。

字符编码详情_控制字符_03

 

 

字符编码详情_字节数_04

 

一,UTF32编码。

 



标签:编码,UTF,字节,字符,详情,Unicode,ASCII
From: https://blog.51cto.com/u_13912516/5938628

相关文章

  • 编码遵守的规则
    一、求唯一通常情况下,只要物料的物理或化学性质有变化,只要物料必须要在仓库中存储,就必须为其指定一个编码,即通常所说的一物一码。比如某零件要经过冲压成型、钻孔、喷漆三......
  • PHP 如何把一个对象转换成字符串 All In One
    PHP如何把一个对象转换成字符串AllInOnehttps://www.php.net/manual/zh/function.json-encode.phpdemos(......
  • SQL Server一个字符串根据某指定字符 拆分多行显示
    逻辑:先将该字段值统一替换为符号(我用的符号是“я”)分割,再将符号分割替换转为XML数据类型,再利用xml转为多个行 拆分前selectptypeid,serial fromsalebill  ......
  • [LeetCode]003-无重复字符的最长子串
    >>>传送门题目给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。示例示例1输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",......
  • 字符字节流
    今日内容介绍1、File2、递归=第一节课开始=======================###01IO技术概述.avi(02:49)*A:IO技术概述*a:Output*把内存中的数据存储到持久化设备上这个动作称......
  • Python笔记--字符串
    字符串的三种定义单引号定义法:双引号定义法:三引号定义法:结果:其中,三引号定义的话,不用变量接收的话,就相当于多行注释;用变量接收的话,就是对于字符串的定义了。字符串......
  • 把字符串数组"[0.1,0.2]"转换array<double>,把字符串数组“['2021-01-01','2021-01-02&
    importorg.apache.spark.sql.functions.{col,regexp_replace,to_date,udf}----把字符串数组"[0.1,0.2]"转换array<double>:frame=frame.withColumn("ArrayDoubleValu......
  • 【校招VIP】线上实习 推电影 电影详情模块 前端文档周最佳
    【推电影】主要是为校招设计的年青人电影推荐平台项目,每个模块都具有亮点和难点,项目表现为手机网站应用,可嵌入小程序或APP中。恭喜来自仲恺农业工程学院的小陈同学获得本......
  • 表示数值的字符串
    请实现一个函数用来判断字符串是否表示数值(包括整数和小数)。例如,字符串"+100","5e2","-123","3.1416"和"-1E-16"都表示数值。但是"12e","1a3.14","1.2.3","+-5"和"12e+4.......
  • c++字符串和字符数组互相转
    voidmain(){//字符串转字符数组stringname="ddddd";charbuf[]={0};strcpy(buf,name.c_str());//字符串转字符数组,使用strcpycout<<n......