教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

锟斤拷锟(什么是锟斤拷?)

  锟斤拷锟(什么是"锟斤拷"?)
  周末女朋友出去逛街了,我自己一个人在家看综艺节目,突然,女朋友给我打来电话。
  图片来自 Pexels
  过了一会,女朋友回来了,她拿出手机,给我看了她在超市拍的照片:
  要想知道什么是乱码,需要先从计算机编码说起。
  字符编码和 ASCII
  我们经常看一些谍战剧,谍战剧里敌特、地下党员以及八路军各部间发送情报的时候,一般都是通过电报发送的。
  电报在传递的过程中,需要发报员用电键发出长短不一的电码,收报员就会听到电报机发出的滴滴滴答答答的声音。
  其实电报发出的声音都是"滴"和"答"的组合,"答"的声音是"滴"的三倍长。
  发报员要先通过一种方式,将想要发送的情报转成电报的滴答声,收报员在听到滴答声之后,再将它们翻译成正常的文字。这个过程就是字符编码和字符解码。
  谍战剧中将情报转成电报的"滴"和"答"声主要通过摩尔斯电码,这是一种通过不同的排列顺序来表达不同的英文字母、数字和标点符号的字符编码方式。
  莫尔斯电码由短的和长的电脉冲(称为点和划)所组成。点和划的时间长度都有规定,以一点为一个基本单位,一划等于三个点的长度。正好对应上电报的"滴"和"答"。
  就像电报只能发出"滴"和"答"声一样,计算机只认识 0 和 1 两种字符,但是,人类的文字是多种多样的,如何把人类的文字转换成计算机认识的 01 字符呢,这个过程同样需要通过字符编码。
  字符编码(Character encoding)是一套法则,使用该法则能够对自然语言的字符的一个集合(如字母表或音节表),与其他东西的一个集合(如号码或电脉冲)进行配对。
  和摩尔斯电码功能类似,上个世纪 60 年代,美国制定了一套字符编码,对英语字符与二进制位之间的关系,做了统一规定,这被称为 ASCII 码,一直沿用至今。
  ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套计算机编码系统。
  它主要用于显示现代英语,其中共有 128 个字符,包含了所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符等。
  由于 ASCII 只有 128 个字符,虽然对于英文字符都可以表示了,但是世界上还有很多其他的文字他是没办法表示的,所以需要一种更加全面的字符编码。
  在介绍其他的字符编码之前,我们先来说一下一个计算机领域通用的字符集。
  Unicode
  Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。
  它对世界上大部分的文字系统进行了整理、编码,使得计算机可以用更为简单的方式来呈现和处理文字。
  Unicode 至今仍在不断增修,每个新版本都加入更多新的字符。目前最新的版本为 2019 年 5 月公布的 12.1,这一版本只新增了 1 个字符,即日本新年号令和的合字。
  Unicode 备受认可,并广泛地应用于计算机软件的国际化与本地化过程。有很多新科技,如可扩展置标语言(Extensible Markup Language,简称:XML)、Java 编程语言以及现代的操作系统,都采用 Unicode 编码。
  Unicode 是一套通用的字符集,包含世界上的大部分文字,也就是说,Unicode 是可以表示中文的。
  UTF-8,UTF-16,UTF-32
  Unicode 虽然统一了全世界字符的编码,但没有规定如何存储。这么做是有考虑的:如果 Unicode 统一规定,每个符号就要用 3 个或 4 个字节表示,因为字符太多,只能用这么多字节才能表示完全。
  一旦这么规定,那么每个英文字母前都必然有 2 到 3 个字节是 0,因为所有英文字母在 ASCII 中都有,都可以用 1 个字节表示,剩余字节位置就要补充 0。
  如果这样,文本文件的大小会因此大出二三倍,这对于存储来说是极大的浪费。
  为了解决这个问题,就出现了一些中间格式的字符集,他们被称为通用转换格式,即 UTF(Unicode Transformation Format)。
  常见的 UTF 格式有:
  UTF-7
  UTF-7.5
  UTF-8
  UTF-16
  UTF-32
  UTF-8:使用 1 至 4 个字节为每个字符编码,UTF-16:使用 2 或 4 个字节为每个字符编码,UTF-32:使用 4 个字节为每个字符编码。
  所以我们可以说,UTF-8、UTF-16 等都是 Unicode 的一种实现方式。
  举个例子,Unicode 规定了 1 个中文字符 "我"对应的 Unicode 是 "\u6211",但是,在 UTF-8 和 UTF-16 等不同的实现方式下,这个二进制 Code 的存储方式是不一样的。
  UTF-8 使用可变长度字节来储存 Unicode 字符,例如 ASCII 字母继续使用 1 字节储存,重音文字、希腊字母或西里尔字母等使用 2 字节来储存,而常用的汉字就要使用 3 字节。辅助平面字符则使用 4 字节。
  GBK,GB2312,GB18030
  因为 UTF-8 是 Unicode 的一种实现,所以他包含了世界上的所有文字的编码,他采用的是 1-4 字节进行编码。
  对于那些排在前面优先纳入的文字,可能就优先使用 1 字节、2 字节存储了,对于后纳入的文字,就要使用 3 字节或者 4 字节存储了。
  正是因为他太全了,所以那些晚一些纳入的字符,在 UTF-8 中的存储所占的字节数可能就会多一些,那他的存储空间要求就会很大。
  对于常用的汉字,在 UTF-8 中采用 3 字节进行编码,但是如果有一种只包含中文和 ASCII 的编码的话,就不需要使用 3 个字节,可能 2 个字节就够了。
  对于大部分网站来说,基本都是只服务一个国家或者地区的,比如一个中国的网站,一般会出现简体字和繁体字以及一些英文字符,很少会出现日语或者韩文的。
  也是出于这样的考虑,中国国家标准总局于 1981 年制定并实施了 GB 2312-80 编码,即中华人民共和国国家标准简体中文字符集。
  后来厂商微软利用 GB 2312-80 未使用的编码空间,收录 GB 13000.1-93 全部字符制定了 GBK 编码。
  有了标准中文字符集,如果是一个纯中文网站,就可以采用这种编码方式,这样可以大大节省一些存储空间的。
  常用的中文编码有 GBK,GB2312,GB18030 等,最常用的是 GBK。
  GB2312(1980 年),16 位字符集,收录有 6763 个简体汉字,682 个符号,共 7445 个字符:
  优点:适用于简体中文环境,属于中国国家标准,通行于大陆,新加坡等地。
  缺点:不兼容繁体中文,其汉字集合过少。
  GBK(1995 年),16 位字符集,收录有 21003 个汉字,883 个符号,共 21886 个字符:
  优点:适用于简繁中文共存的环境,为简体 Windows 所使用,向下完全兼容 GB2312,向上支持 ISO-10646 国际标准 ;所有字符都可以一对一映射到 Unicode 2.0 上。
  缺点:不属于官方标准和 big5 之间需要转换;很多搜索引擎都不能很好地支持 GBK 汉字。
  GB18030(2000 年),32 位字符集;收录了 27484 个汉字,同时收录了藏文、蒙文、维吾尔文等主要的少数民族文字:
  优点:可以收录所有你能想到的文字和符号,属于中国最新的国家标准。
  缺点:目前支持它的软件较少。
  乱码
  我们还拿前面介绍过的发电报的例子来说,假设有以下场景:发报员使用"美式摩尔斯电码"将情报转换成电报,收报员接收到电报之后,通过"现代国际摩尔斯电码"进行破译。那么得到的情报内容就可能完全看不懂,这就是乱码了。
  就像在计算机领域,我们把一串中文字符通过 UTF-8 进行编码传输给别人,别人拿到这串文字之后,通过 GBK 进行解码,得到的内容就会是"锟届瀿锟斤拷雮傡锟斤拷直锟斤拷锟",这就是乱码。
  如以下代码:publicstaticvoidmain(String[]args)throwsUnsupportedEncodingException{  Strings="漫话编程!";    byte[]bytes=s.getBytes(Charset.forName("GBK"));    System.out.println("GBK编码,GBK解码:"+newString(bytes,"GBK"));    System.out.println("GBK编码,GB18030解码:"+newString(bytes,"GB18030"));    System.out.println("GBK编码,UTF-8解码:"+newString(bytes,"UTF-8"));  }
  输出结果:GBK编码,GBK解码:漫话编程!  GBK编码,GB18030解码:漫话编程!  GBK编码,UTF-8解码:????????
  可以看到,将中文字符,通过 GBK 编码,再使用 UTF-8 解码,得到的字符就是一串问号,这就是乱码了。
  锟斤拷的前世今生
  因为 Unicode 是一直在更新的,在这个过程中,肯定有一些比较新的字符他是无法表示的。
  或者即使 Unicode 发布了新版纳入了某个文字,但是很多软件系统并未升级也会有这样的问题。
  就像生活中一些手机厂商新出的那些 emoji 表情,在自己的手机上可以正常显示,发到其他品牌的手机上可能就无法显示。这其实也是字符集不支持导致的。
  发生以上情况时,无法显示的时候也需要有一个字符来表示的,在 Unicode 中,这个字符就是 � ,他也是 Unicode 中定义的一个特殊字符。
  也就是"0xFFFD REPLACEMENT CHARACTER",所有无法表示的字符都会通过这个字符来表示。
  Unicode 官方有关于这个符号的介绍,从上表中可以看到,他的 10 进制表示是 65533,在 UTF-8 下,他的 16 进制形式是'0xEF 0xBF 0xBD'(三个字节)。
  如果有两个连续的字符都无法显示,如"� �" ,那么在 UTF-8 编码下,16 进制表示为:0xEF0xBF0xBD  0xEF0xBF0xBD
  以上这段编码,如果放到 GBK 中进行解码的话,因为 GBK 中一个汉字两个字节,那么结果就是:0xEF0xBF,0xBD0xEF,0xBF0xBD
  即:0xEFBF  0xBDEF  0xBFBD
  那么,如果展示出来,就是:锟(0xEFBF),斤(0xBDEF),拷(0xBFBD)。
  所以,以后再见到锟斤拷,第一时间想到 UTF-8 和 GBK 的转换问题准没错。
  除了锟斤拷以外,还有两组比较经典的乱码,分别是"烫烫烫"和"屯屯屯",这两个乱码产生自 VC,这是 Debug 模式下 VC 对内存的初始化操作。
  VC 会把栈中新分配的内存初始化为 0xcc,而把堆中新分配的内存初始化为 0xcd。把 0xcc 和 0xcd 按照字符打印出来,就是烫和屯了。

苏州飞机场(苏州自建机场遥遥无期)苏州飞机场(苏州自建机场遥遥无期)2021年2月26号,江苏省印发江苏省十四五规划和2035年远景目标纲要,其中关键词南京提到45次(不含宁)关键词苏州提到43次(不含苏)。由此可尼泊尔苦行僧(不要随便拍摄苦行僧)尼泊尔苦行僧(不要随便拍摄苦行僧)尼泊尔以寺庙之国著称。在尼泊尔旅行,举目可见的寺庙神衹,还有随处可见的苦行僧和修行者。随着旅游发展,尼泊尔的苦行僧变成了一种景观。尤其是位于加德满培训体系(构建多元培训体系打造高素质人才梯队)培训体系(构建多元培训体系打造高素质人才梯队)人才是企业保持市场竞争力的关键因素之一,企业要想在竞争中立于不败之地,不仅需要引进各类人才,还需要加强对自身员工的培训。作为连续七年蝉个人所得税税率(个人所得税税率表)个人所得税税率(个人所得税税率表)依据中华人民共和国个人所得税法,下列各项个人所得,应当缴纳个人所得税(一)工资薪金所得劳务报酬所得(二)稿酬所得(三)利息股息红利所得偶然所得等(赵薇怀孕(赵薇高龄怀孕保胎)赵薇怀孕(赵薇高龄怀孕保胎)2013年,赵薇在怀孕的空档期,黄有龙却与自己的好闺蜜远赴日本密会,如今面对网上爆出赵薇约会小鲜肉,黄有龙为何会一脸平静,这两人的婚姻是否会走到尽头。赵雅迪助力车报价(雅迪喊话哈啰)雅迪助力车报价(雅迪喊话哈啰)近期,雅迪在其子品牌VFLY发布会上表示,要在高端赛场颠覆传统,突破行业限制,并且发布会视频偷偷喊话哈啰不要哈喽,有事请说作为两轮电动车老将,雅迪在行什么电动车质量最好(哪一款电动车最好)说到电动车,大家首先想到的是雅迪新日和爱玛这三家品牌了在国内有十大品牌电动车,为什么大家对这三家品牌电动车较为熟悉呢?雅迪成立于1997年,经过二十多年的发展,俨然成为了电动车行业宝马740车主(花90万买辆宝马740)宝马740车主(花90万买辆宝马740)当下宝马7系的颜值在BBA同级车中不用多言,造型年轻运动,颇受年轻老板的喜欢,而且7系的价格比奔驰S级便宜十几万元,相同配置情况下宝马7的价学声乐大概要花多少钱(学音乐大概要花多少钱)花几千块去学声乐值得吗?感谢邀请!学声乐对于爱好音乐的人来说是个补救措施。对于从小没有机会和条件学习乐器的音乐爱好者,成人后学习声乐,能使我们重圆自己的音乐梦。因为学习声音年龄不能如何让自己内心强大(如何让自己内心变得强大?)如何让自己内心强大(如何让自己内心变得强大?)如何让自己内心变强大,不让自己被别人安排?要想拥有一个强大的内心,首先你应该拥有一个独立的人格,那么如何拥有一个独立的人格呢?你应该学猪关节肿大打什么针好(小猪脚关节肿什么原因?)猪关节肿大打什么针好(小猪脚关节肿什么原因?)小猪腿关节肿胀这种现象,我们很多养殖户都遇到过,尤其是三五十斤左右的小猪,是高发群体,其他阶段比如说哺乳猪也会发生。那么这一般都是什么
腰间盘突出早期症状(引发腰椎间盘突出的6个原因早知道)腰间盘突出早期症状(引发腰椎间盘突出的6个原因早知道)腰椎间盘突出症是脊柱外科常见病和多发病,是引起下腰痛和腰腿痛的最常见原因。腰椎间盘突出症的发病原因是因腰椎间盘(由髓核纤维环及儿童癫痫病的早期症状(少儿癫痫病早期症状表现都有什么?)儿童癫痫病的早期症状(少儿癫痫病早期症状表现都有什么?)现在癫痫在生活中是一种很常见到的疾病了,也是可能会发生在任何一个年龄段的,所以不管是任何人群,对于癫痫都不能忽视,应该积极地郎平婚姻(郎平经历2段婚姻)郎平婚姻(郎平经历2段婚姻)在中国体坛,笔者最热爱的一项运动就是女排,中国女排具有极强的感染力,它的顽强拼搏的精神,时时刻刻地感染着我,它在逆境中绝地反击的力量,能使人心震撼。近日公司战略规划(长城人寿启动公司四五战略规划)公司战略规划(长城人寿启动公司四五战略规划)在6月20日举行的长城人寿FamilyFirst家人至上2021年全国产品发布会上,记者了解到,该公司今年启动了其四五战略规划,谋求在其公司存续是什么意思(公司异常多久自动注销)想必大家对存续这个词都不是很熟悉吧,但是在某些时候也是会遇上的,存续呢,其实描述的是公司的一种经营状态,指的是依法存在并且在正常运营。但是公司的经营状态也不止只有存续这一种,还有很藕粉的做法(李子柒牢记古法藕粉制作方法)藕粉的做法(李子柒牢记古法藕粉制作方法)说到李子柒,相信大家一定是非常熟悉了。这是一个人美心善的小女孩。她不仅人美,她还善于生活,喜欢生活的李子柒,远离城市的喧嚣,在偏远的大山中隐芳心朵朵开(数九寒天桃花朵朵开)芳心朵朵开(数九寒天桃花朵朵开)12月30日,在滦州市小马庄镇现代农业园区桃树大棚内,果农忙中偷闲自拍。近日,河北省滦州市小马庄镇现代农业园区的100多亩大棚桃花竞相绽放,果农们忙洛杉矶月子中心(美当局突查洛杉矶月子中心)洛杉矶月子中心(美当局突查洛杉矶月子中心)这几天,美国联邦探员突查了南加州27处月子中心。月子中心问题被报导的沸沸扬扬在这赴美生子的动荡期,很多妈妈们纷纷来询问(电话里微信里,各种缓存文件(Excel如何删除缓存文件)缓存文件(Excel如何删除缓存文件)可能你还不知道Excel文件也是有缓存文件,缓存文件会占用电脑的内存空间,这会影响电脑的运行性能,那么应该如何删除Excel缓存文件呢,下面小肺炎能治好吗(肺炎,一般多久能治好?)肺炎能治好吗(肺炎,一般多久能治好?)发生肺炎之后多久才能好呢?其实这个问题是非常难回答的。并不是所有会员都会好,因为有一些严重的患者出现肺炎的话,后果很难想象,病死率甚至可以高达cake可数吗(四个维度详细讲解英语不可数名词的底层思维逻辑)cake可数吗(四个维度详细讲解英语不可数名词的底层思维逻辑)语法梳理王兴刚老师适合人群英语教师英语专业学生初高中生等序言我们从初中,甚至小学开始,就接触了英语的名词。我们知道名词