首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【计算机基础】utf6、utf16utf32

而今天要解决的问题也只有一个 utf8、utf16utf32 都是什么鬼!...那就是 utf8、utf16utf32 做的事情了,他们各自都有不同的规则去存储字符 比如会存在下面的对话 UTF-8 我规定一个字符存1个字节就好了 我不行,我偏要一个字符存两个字节 UTF-16...下面我们先说 utf32,再说utf8,再说utf16 UTF-32 UTF-32 规定了每个字符使用四个字节存储,但是这样会十分浪费,因为对于英文等一些简单字符来说,一个字节就能表示了 比如说字母 A...UTF-16 utf16 的内容研究了我三四天,才终于把逻辑弄通了 utf16utf32 和 utf8 的中间产物,结合 定长和 变长 两个编码特点 规则是,基本平面的字符使用 2个字节,辅助平面字符使用...,确定 4个字节为一个字符,所以 utf16utf8 有一样的问题,需要指定一个规则,让机器知道 哪里到哪里属于一个字符 但是 utf16 因为确定只用 2 或4 个字节,所以又比 utf8 规则简单一些

1.1K10
您找到你想要的搜索结果了吗?
是的
没有找到

UTF-8 为什么会比 UTF-16 浪费?

UTF-8和UTF-16 那么 UTF-8的 8是从哪儿来的呢?它的意思就是说我们以 2的 8次方为一个字节,为一个最小单元。...那么如果我们以 2的 16次方为一个最小单元,这就变成了 UTF-16,它的规则和 UTF-8相同,唯一不同的是它最小也要用 16个 2进制位表示一个字符,而 16个 2进制位直接可以表示 65536种字符...,所以在 UTF-16方案里,我们汉字直接就可以如英文一样被堂而皇之地放在第 1区了,也就是说,和英文具有同等的身份,都占用 16个 2进制位,也就相当于 UTF-8里的 2字节哦,看,这样一来,如果我们用...UTF-16来存储英文的话,会造成浪费,因为英文在 UTF-8里只占 1字节,而在 UTF-16里要占 2字节,但是如果我们用 UTF-16来存储中文的话,不但不浪费,反而还节省了呢!...因为我们的中文在 UTF-8里要占用 3字节,而在 UTF-16里只占用 2字节,节省了 33%之多呢! 觉得本文对你有帮助?请分享给更多人。

91850

Unicode中UTF-8与UTF-16编码详解

概述 本文通过介绍Unicode编码以及对应的两种编码方式UTF-8和UTF-16,让读者能够了解关于字符串编码的相关知识,同时能够弄清楚Unicode和UTF-8和UTF-16之间的关系。...-16编码,包含基础概念和Unicode编码转换到UTF-16编码方式 JavaScript中string与DOMString 本文作为utfx.js源码解析的基础知识储备文章,通过了解UTF-8和UTF...简单介绍完了Unicode,我们来看下UTF-8和UTF-16。...UTF-16 概念 UTF-16是Unicode字符编码五层次模型的第三层:字符编码表(Character Encoding Form,也称为 "storage format")的一种实现方式。...引用维基百科中对于UTF-16编码的解释我们可以知道,UTF-16最少也会用2 Byte来表示一个字符,因此没有办法兼容ASCII编码(ASCII编码使用1 Byte来进行存储)。

8.6K31

2020-2-22-Unicode代理对(utf-16

我们都知道Unicode的大部分字符都是都是使用16位编码,即2个字节表示。 这也是为什么正则匹配中,Unicode使用“\uxxxx”进行匹配的原因 为什么说是大部分呢?...那么,Unicode使用16位编码能够最多表示 ${2^{16}=65536}$,这对于当前常见的主要语言的字符,数学符号等已经基本够用。...他选择了 D800-DBFF编码范围作为前两个字节(utf-16高半区),DC00-DFFF作为后两个字节(utf-16低半区),组成一个四个字节表示的字符。...当软件解析到Unicode连续4个字节的前两个是utf-16高半区,后两个是utf-16低半区,他就会把它识别为一个字符。如果配对失败,或者顺序颠倒则不显示。...使用StringInfo正确查找字符个数 - huangtengxiao ---- 参考文档: Unicode - 维基百科,自由的百科全书 Unicode字符平面映射 - 维基百科,自由的百科全书 UTF

1.3K30

JavaScript如何实现UTF-16编码转换为UTF-8编码——utfx.js源码解析

UTF-8和UTF-16两种编码方式的具体原理,可以阅读我的前一篇博客——Unicode中UTF-8与UTF-16编码详解。...decodeUTF8:将UTF-8编码的二进制bytes解码城字符串code码。 UTF16toUTF8:将UTF-16的字符转换为UTF-8的code码。...UTF8toUTF16:将UTF-8的code码转换为UTF-16的字符。 encodeUTF16toUTF8:将UTF-16编码的字符转换为UTF-8编码的bytes。...UTF-16编码转换为UTF-8编码 下面让我们来看下如何将UTF-16编码的数据转换为UTF-8编码的数据。...我们通过UTF16toUTF8和encodeUTF8方法的代码来进行具体解析。 UTF16toUTF8 这个函数名看上去是直接将UTF-16编码的bytes数据转换为UTF-8编码的的Bytes数据。

3.6K20

本文带你深入理解 String Unicode UTF8 UTF16

你需要知道在JS中,字符串使用了UTF16编码(其实本来是UCS-2,UTF16是UCS-2的扩展)。为什么JS的字符串不用UTF8?因为JS诞生(1995)时,UTF8还没出现(1996)。...UTF16的具体映射方法:16进制编码范围(Unicode)UTF-16表示方法(二进制)10进制码范围字节数量U+0000 - U+FFFFxxxxxxxx xxxxxxxx (一共16个x)0-655352U...也就是说,在UTF16中,遇到110110一定是4字节UTF16的前2字节的前缀,遇到110111一定是4字节UTF16的后2字节的前缀,其它情况,一定是2字节UTF16。...这样,通过损失了部分可表述字符,UTF16也成为了「前缀码」。JS中的字符串在JS中,'‍♂️'.length算的就是这个字符的UTF16占用了多少个字节。...我开发了个工具,用于解析字符串,把它的UTF8二进制和UTF16二进制都展示了出来。

5.6K141
领券