当前位置:首页 > 行业知识 > 综合

密码至少8个字符举例

关注:221 发布时间:2021-11-30 09:00:03

为什么 string 要设计成 final ,又如何设计一个不可变类呢?留下了一个编码相关的问题。在java中,一个字符(汉字字母)理论上占用两个字节。但在utf-8,新字符串(“单词”)。getbytes。length返回3,这意味着3个字节。你知道为什么吗?java中char占用多少字节?

在回答这个问题之前,我们先学习一些基础知识。

什么是字符集?什么是编码?

字符(character )是文字与符号的总称,包括文字、图形符号、数学符号等。 一组抽象字符的集合就是字符集(charset )。

之所以说“抽象”,是因为这里说的人物是没有具体形式的人物。比如文章里看到的“韩”这个人物,其实就是这个人物的一个具体表现,就是它的形象表现。当人们读“韩”这个词时,他们使用另一种具体的表现形式——声音。但无论如何,这两种表达方式指的是汉字,同一汉字可能有无数种表达方式(点阵、矢量法、音频等)。).如果每个表达式中的相同字符包含在字符集内,会使字符集过大。对于因此抽象字符集中的字符,都是指唯*存在的抽象字符,而忽略了它的具体表现形式。在给定一个抽象字符集合中的每个字符都分配了一个整数编号之后,这个字符集就有了顺序,就成为了编码字符集。同时,这个编号,可以唯*确定到底指的是哪一个字符。,的同一个字符,不同字符集编码系统指定的整数是不同的。例如,单词“er”,在unicode中,它的数字是0x513f,这意味着它是unicode中的第一个0x513f字符。在另一个编码字符集中,单词是0xa449。

编码字符集,指的是这种被分配了整数编号的字符集合,但是编码字符集中字符被分配的整数编号,不一定就是该字符在计算机中存储时所使用的值,计算机中存储的字符到底使用什么二进制整数值来表示,由字符集编码决定。

在字符集编码决定了如何将一个字符的整数编号对应到一个二进制的整数值。,几乎所有英文字符的字符集代码中,英文字母的整数数字与计算机中存储的二进制形式一致。但是有些编码方法,比如适用于unicode字符集的utf-8,是将大量字符的整数进行转换,存储在计算机中。例如,“中文”的unicode值是0x6c49,但其编码格式是utf-8,其值是0xe6b189 (3字节)。

编码字符集里的每一个字符,都对应到唯*的一个代码值,这些代码值叫做码点(code point ),可以看做是这个字符在编码字符集里的序号,字符在给定的编码方式下的二进制比特序列称为码元(code unit )。

注意:我们在这里引出了两个概念,码点和码元。

为什么要区分字符集和编码?

早期字符集和编码是一对一的。字符编码方案很多,一个字符集只有一种编码实现,两者一一对应。比如gb2312,在这种情况下,不管怎么称呼,比如“gb2312代码”和“gb2312字符集”,其实都是一样的东西,本身也不一定有什么区别,反正不可能错。

说到unicode,就不一样了。唯*的unicode字符集对应于三种编码:utf-8、utf-16和utf-32。字符集、编码等概念完全分离、模块化,在unicode时代得到广泛认可。

1)字符集是字符集的简称,即字符集。

2)编码是字符集编码的简称,即字符集编码。

从上图可以清楚地看出,

1、编码是依赖于字符集的,就像代码中的接口实现依赖于接口一样;

2、一个字符集可以有多个编码实现,就像一个接口可以有多个实现类一样。

为什么unicode这么特别?

想出一个新的字符集标准就是旧字符集字符不够用。

unicode旨在统一所有字符集,包括所有字符,因此没有必要编辑新的字符集。

但是如果你觉得它现有的编码方案不是很好呢?在没有新字符集的情况下,我们只能在编码上做文章,所以实现很多,从而打破了传统的一一对应。

从上图可以看出,由于历史原因,你也会看到unicode和utf-8在很多地方混在一起。这种情况下的unicode通常是utf-16或更早的ucs-2编码。

关于unicode,我们已经谈了很多。出于各种原因,必须承认,“unicode”一词在不同的语境中有不同的含义。它可能指:

1)unicode 标准

2)unicode 字符集

3)unicode 的抽象编码(编号),也即码点( code point )

4)unicode 的一个具体编码实现,通常即为变长的 utf-16,又或者是更早期的定长 16 位的 ucs-2。

在重点介绍下 utf-16 编码,utf-16将unicode字符集的代码点映射成一个16位整数序列(即长度为2字节的符号),用于数据存储或传输。unicode字符的代码点需要用一个或两个16位符号来表示,所以这是一种可变长度的表示。

utf-16可视为ucs-2的父集。utf-16和ucs-2在没有辅助平面字符之前的意思是一样的(基本思想是用两个16位代码表示一个字符,只针对65535以上的字符)。引入辅助平面字符后,称为utf-16。

现在,如果某些软件声称支持ucs-2编码,实际上意味着它不能支持utf-16中超过2字节的字符集。对于小于0x10000的ucs码,utf-16编码等于ucs码。

为什么要重点介绍 utf-16 编码,因为 java 的内码使用的是 utf-16 编码,也就是我们常说的 unicode 编码。

没想到这么长,只是介绍了字符集和编码的区别。看来有必要分两篇回答前一篇留下的问题。这篇文章的总结其实就是两句话:

编码字符集里的每一个字符规定的顺序,叫码点(code point ),而这个字符在编码字符集里的序号,在给定的编码方式下的二进制序列叫码元(code unit )。

在爪哇,我们与外码,即程序与外部交互时外部使用的字符编码,有更多的接触,但你不知道更多。我们期待下一期进入java的编码,比较终回答上面提到的问题。

猜你喜欢

  • 史瓦西半径公式推导

    史瓦西半径公式推导55人支持

    在很多电影场景中,史瓦西黑洞被描述为通向另一个维度的时间隧道,眼前的一切都会被这个宇宙吸尘器吸走,但这种描述让它们更加神秘,更难被理解。但实际上黑洞因为属性特征不同而被…

  • 七情六欲是什么意思?七情六欲是哪七情哪六欲

    七情六欲是什么意思?七情六欲是哪七情哪六欲80人支持

    七情六欲是哪七情哪六欲?所说的世俗欲望是什么意思?我们常说“人皆有世俗之欲”。那么你一定注意到了,“怒”来自“恶”,“喜”来自“爱”,所以在“喜、怒、悲、喜”中加上“恶”…

  • 小县城创业

    小县城创业15人支持

    如今,互联网对中国各行各业,尤其是终端零售业的影响很大,导致许多实体店转型,要么专门做线上销售,要么线上线下兼营,要么倒闭。这就是网络经济下实体经济的现实。互联网在一二线城…

  • 男人准备分手的前奏

    男人准备分手的前奏33人支持

    两个人之间的爱是一段感情的开始。但是,谁也不能保证这份爱会长久。两个人分手的原因有很多,可能是因为两个人性格不同,观点不同,家人不支持。如果一个女人见过一个真正爱自己的…

  • 淘宝怎么删除差评?怎么用链接删除差评

    淘宝怎么删除差评?怎么用链接删除差评29人支持

    今天我们要讲的是删除差评的技巧。我们都知道市场上删差评的行业价格是c店200天猫300,那么他们是怎么做的呢?你真的有内部资源吗?其实都是有套路的。那就说说这个套路吧,让你少…

  • 淘宝和京东哪个好

    淘宝和京东哪个好22人支持

    这个话题相信今天应该会有很多人问。如果网上购买,你会选择淘宝还是jd。com?在网购大行其道的时代,各大网购平台应运而生,而淘宝和京东不得不提。这两个网购平台可以说是当今网…

  • 2021抖音走心很火的短句

    2021抖音走心很火的短句87人支持

    第一,赚钱可以治百病,有钱可以治百病自卑。第二,见面总是猝不及防,离别总是蓄谋已久。总有一些人会慢慢淡出你的生活。你要学会接受,而不是错过。第三,下雨的时候,我知道谁会给你打…

  • 淘宝特价版退款红包退回吗

    淘宝特价版退款红包退回吗44人支持

    淘宝特别版是淘宝为了留住客户而推出的版本。特别版的商品价格很便宜,所以还是有不少小伙伴会在上面买东西。那么,如果淘宝的特别版退了,优惠券还在吗?有几种情况。淘宝专版用优…

  • 淘宝刷手机单流程

    淘宝刷手机单流程13人支持

    今天我给大家介绍一下淘宝刷单的内容。现在的消费者喜欢在手机上通过淘宝购物,而不是登录官网浏览产品,所以刷手机单子很重要。下面分享一下淘宝刷手机榜的话。淘宝手机单用词…

  • 微信勿扰模式在哪

    微信勿扰模式在哪104人支持

    上次和你分享的10个微信小技巧,帮了很多朋友,所以今天我就向你透露10个微信隐藏功能。看完之后,不要怀疑自己用的是山寨微信。01*检测真假朋友玩了这么多年微信,你肯定加了很多…

  • 怎样拉人进微信群

    怎样拉人进微信群38人支持

    你手机里的流量是你的,我手机里的流量是我的,别人平台上的流量是别人的。其实一个人会同时成为几十甚至几百人眼中的流量。流动的真相既是我的也是你的,但归根结底是我们的,这取…

  • 学平险是什么险种

    学平险是什么险种85人支持

    薛平保险全称“中小学生平安保险”,属于人身意外伤害保险,针对中小学生特点。学生入学时往往是自愿投保的,被保险人只需缴纳几十元保费就可以获得意外伤害、意外伤害医疗、住院…