首页 > 其他分享 >UTF-8

UTF-8

时间:2024-12-30 10:53:45浏览次数:4  
标签:编码 UTF 字节 10xxxxxx UCS ASCII

UTF-8

无论是UTF-16/32还是UCS-2/4,一个字符都需要多个字节来编码。

在UTF-8编码中,ASCII码中的字符还是ASCII码的值,只需要一个字节表示,其余的字符需要2字节、3字节或4字节来表示。

UTF-8的编码规则:

(1) 对于ASCII码中的符号,使用单字节编码,其编码值与ASCII值相同。其中ASCII值的范围为0~0x7F,所有编码的二进制值中第一位为0(这个正好可以用来区分单字节编码和多字节编码)。

(2) 其它字符用多个字节来编码(假设用N个字节),多字节编码需满足:第一个字节的前N位都为1,第N+1位为0,后面N-1 个字节的前两位都为10,这N个字节中其余位全部用来存储Unicode中的码位值。

字节数 Unicode UTF-8编码
1 000000-00007F 0xxxxxxx
2 000080-0007FF 110xxxxx 10xxxxxx
3 000800-00FFFF 1110xxxx 10xxxxxx 10xxxxxx
4 010000-10FFFF 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

区别

(1) 简单地说:Unicode属于字符集,不属于编码,UTF-8、UTF-16等是针对Unicode字符集的编码。

(2) UTF-8、UTF-16、UTF-32、UCS-2、UCS-4对比:

对比 UTF-8 UTF-16 UTF-32 UCS-2 UCS-4
编码空间 0-10FFFF 0-10FFFF 0-10FFFF 0-FFFF 0-7FFFFFFF
最少编码字节数 1 2 4 2 4
最多编码字节数 4 4 4 2 4
是否依赖字节序

UTF-8 BOM

UTF-8 BOM(Byte Order Mark)是一个特殊的字符序列,用于表示文本文件使用 UTF-8 编码。BOM 本身是可选的,在 UTF-8 中并不影响文本内容的实际表示,但它可以在文件的开头插入一个特定的字节序列 EF BB BF,作为文件的编码标识符,一般windows比较常用。

vim下,使用命令 :set nobomb 来去除 BOM防止在php,html中的影响

 

标签:编码,UTF,字节,10xxxxxx,UCS,ASCII
From: https://www.cnblogs.com/sudochen/p/18640353

相关文章

  • java中各种字符编码通过字节向16进制的互转:UTF8|GBK|unicode 字符串<=>字节<=>16进制字符
    文章目录引言I16进制、字节、编码字符之间的转换前提16进制格式字符串‌16进制格式字符串的应用场景转换原理转换流程:字符串<=>字节<=>16进制java中编码的转换APIII其他例子TCP协议字段编码基于netty实现TCP的编码设置将16进制字符串转换为字符串......
  • 从底层逻辑证明,编写一个能准确识别不带BOM的文本文件编码是GBK还是UTF8是不可能的
    声明:本文为原装文章,转载请注明出处。经常处理文本文件的小伙伴,有个很头疼的事情,就是如何准确识别一个文本文件到底是什么编码方式,ANSI(也就是GBK)还是UTF8。文本文件,是指以特定的文本编码将每个字符逐个字节存储的一种文件格式,文本文件的常见的扩展名是.txt,但又不一定是.txt,例如......
  • 请解释下utf8和utf8mb4的区别
    utf8和utf8mb4的区别主要体现在对Unicode字符的支持范围、编码的最大字符长度以及存储空间需求上。以下是对这两者区别的详细解释,特别从前端开发的角度进行阐述:Unicode字符支持范围:utf8:主要支持Unicode字符集中的基本多语言平面(BMP)范围内的字符,即码点范围从0x0000到0xFFFF。......
  • 使用SELECT…INTO OUTFILE导出文本文件
    ​MySQL数据库导出数据时,允许使用包含导出定义的SELECT语句进行数据的导出操作。该文件被创建到服务器主机上,因此必须拥有文件写入权限(FILE权限)才能使用此语法。“SELECT...INTOOUTFILE'filename'”形式的SELECT语句可以把被选择的行写入一个文件中,并且filename不能是一个已经存......
  • 输出与文件编码的兼容性 在 .CMD 文件中,通过正确的编码方式(如 UTF-8),可以确保脚本与外
    在计算机科学和技术领域,.CMD和.BAT文件都属于批处理脚本文件格式,它们是Windows操作系统中用于执行命令的一种文件类型。虽然这两者非常相似,但.CMD文件有一些相对于.BAT文件的优势,特别是在Windows2000及以后版本中。下面将分析.CMD文件相对于.BAT文件的一些优势,并......
  • python批量将文件编码格式转换为 UTF8带标签的格式,解决linux环境下中文编码乱码的问题
    指定一个文件夹,遍历文件夹内的文件和子文件夹内的文件,然后识别文件后缀为cpp的文件,通过chardet取检测文件的编码格式,如果不是UTF-8-SIG,则转换为UTF-8-SIGpython脚本格式如下importosimportsysimportcodecsimportchardetdefconvert(filename,out_enc="UTF-8-SIG"):......
  • vs2015中使用utf-8编码格式
    在VS2015中,将文件保存为UTF-8格式并确保项目设置支持UTF-8编码,可以通过以下步骤完成:将项目“字符集”设置为“使用Unicode字符集”,将文件保存为utf-8格式:在VisualStudio2015中打开你需要转换编码的文件,点击顶部菜单栏的“文件”,选择“高级保存选项”,在弹出的对话......
  • docker 容器指定utf-8编码,解决中文乱码
    在运行Docker容器的时候,如果容器内应用需要使用UTF-8编码来正常处理中文,你可以通过设置环境变量来指定编码。可以使用-e或者--env标志来设置环境变量。比如,设置LANG和LC_ALL环境变量为C.UTF-8或者en_US.UTF-8:dockerrun-eLANG=C.UTF-8-eLC_ALL=C.UTF-8-it<......
  • python3开头如何设置utf-8
    编码格式1:在源文件第一行或者第二行定义:# coding=<encoding name>例如:# coding=utf-8编码格式2:(这种最流行)格式如下:#!/usr/bin/python # -*- coding: <encoding name> -*-例如:#!/usr/bin/python # -*- coding: utf-8 -*-编码格式3:(如果使用......
  • 字符编码发展史4 — Unicode与UTF-8
    上一篇《字符编码发展史3—GB2312/Big5/GBK/GB18030》我们讲解了ANSI编码中的GB2312/Big5/GBK/GB18030。本篇我们将继续讲解字符编码的第三个发展阶段中的Unicode与UTF-8。2.3.第三个阶段国际化前面提到的第二个阶段,各个国家和地区各自为政,纷纷制定了适用于自己国家语言的字......