列举常用几种汉字输入编码(汉字输入)

奇怪的现象在本文开始之前,先列出几个奇怪的人物对比(为了方便,请抄下来,不然你会失望的)。★“特殊字符”不等于。 JS代码& # 39;‐==-;///fals

奇怪的现象

在本文开始之前,先列出几个奇怪的人物对比(为了方便,请抄下来,不然你会失望的)。

★“特殊字符”不等于。

– JS代码& # 39;‐'=='-';///false – SQL语句select & # 34'‐'='-'"as & # 39比较& # 39;, '‐'='-'as & # 39结果比较& # 39;;-0★“俗字”不等。

– JS代码& # 39;abc‬'=='abc & # 39;///false – SQL语句select & # 34abc‬=abc"as & # 39比较& # 39;, 'abc‬'='abc & # 39as & # 39结果比较& # 39;;-0★ “空 characters “不相等。

— JS代码'‬'==''; //false– SQL语句select "'‬'=''" as '比较', '‬'='' as '比较结果'; — 0

列举常用几种汉字输入编码(汉字输入)插图

MySQL执行结果- JS代码& # 39;‬'=='';///false – SQL语句select & # 34'‬'=''"as & # 39比较& # 39;, '‬'=''as & # 39结果比较& # 39;;- 0MySQL执行结果

列举常用几种汉字输入编码(汉字输入)插图(1)

javascript运行结果javascript的运行结果

★记事本里的怪现象
世界级冠军,相声演员。泰森和牛有关系吗?以下是win10及以下(不含win10)的操作。保存快捷键ctrl+s,或者点击关闭,然后选择保存,然后再次打开【注意:文本文件必须以操作系统默认的方式打开】

列举常用几种汉字输入编码(汉字输入)插图(2)

Win10及以上版本其实修复了这个bug,但还是可以通过以下方式重现。

列举常用几种汉字输入编码(汉字输入)插图(3)

令人惊讶的是,“泰森斗牛”是一个乱码。如果多加一个””,就会正常显示。其实还有“联通”、“拥抱”等等。【注意:“拥抱”保存后会变成“”,下面会用到这个例子】

列举常用几种汉字输入编码(汉字输入)插图(4)

记事本涉及到很多常用代码如ASCII、GBK(包括GB2312)、UTF-8、ANSI、unicode。先说记事本吧!

一. 记事本的前世今生

记事本为什么会出现奇怪的问题?一切要从计算机发展史说起。七八十年代以前的操作系统(DOS系统的前身)没有图形界面,只有一串英文数字符号输入。但是,作为一个世界人口大国和文明古国,中国人是抑郁的。这个东西不支持中文怎么用?于是他们挽起袖子干了起来。

直到1980年,中国国家标准总局发布了《信息交换用汉字字符集》,这是一套于1981年5月1日生效的国家标准。标准编号为GB2312—1980,简称GB2312。这种编码适用于汉字处理和汉字通信系统之间的信息交换,在中国大陆很受欢迎。新加坡等地也采用这种编码。几乎所有的中文系统和中国大陆的国际软件都支持它。GB2312的规则如图所示:

列举常用几种汉字输入编码(汉字输入)插图(5)

以下是微软dos系统自带记事本的伪代码【注:非图形界面的记事本】:

列举常用几种汉字输入编码(汉字输入)插图(6)

1: ascii码指http://www.51hei.com/mcu/4342.html.

列举常用几种汉字输入编码(汉字输入)插图(7)

2:GBK https://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php[注:GBK兼容GB2312]

列举常用几种汉字输入编码(汉字输入)插图(8)

后来在1994年左右,微软桌面操作系统Windows NT horizontal 空诞生并进入中国市场,汉字编码也迎来了新的主要版本GBK[由两个字节组成,最高位为1,向上兼容GB2312]。它采用双字节编码方案,编码范围从8140到FEFE(不包括xx7F),共23940个码点,共21003个汉字。完全兼容GB2312-1980标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的所有中日韩字符,包含BIG5码中的所有汉字。其编码规则如下:

列举常用几种汉字输入编码(汉字输入)插图(9)

为了适应不同市场和地区的字符,微软发明了一种ANSI代码,在不同的国家和地区会显示不同的代码。对于英文文件,是ASCII[由一个字节组成,其中最高位为0]编码,对于简体中文文件,是GBK编码(仅适用于Windows简体中文版,如果是繁体中文版,将采用BIG5编码)。以下是window自带记事本的更新伪代码:

列举常用几种汉字输入编码(汉字输入)插图(10)

一切都那么清晰完美,怎么会乱码?的确,当时没有乱码。但是,随着计算机的日益普及,世界上的编码方式越来越多,同一个二进制数可以解释成不同的符号。

以中国为例,有很多不同性格的民族:
彝族:
维吾尔族:
藏族:
蒙古族:

外语:

日语呢?ぜそぞただち

经常从我们这里抢应用的韩国?
精彩的泰国?
能挑毛病的事迹?

上面有国界,那些没有国界的人物如下:
音乐人物是如何呈现的?
盲文呢?
麻将怎么打?
表情符号呢?

列举常用几种汉字输入编码(汉字输入)插图(11)

预览时发现有些字符无法正常显示,只有编辑时才能发现,特此截图以说明预览的时候发现有些字符无法正常显示,只能在编辑的时候才能找到。这里有一张截图可以说明。

如果有一个代码,包括世界上所有的符号。每个符号被赋予一个唯一的代码,那么乱码问题将会消失。这是Unicode [UTF-8编码是Unicode的实现之一]。顾名思义,这是所有符号的编码。它支持世界上所有的角色。
Unicode编码很复杂,所以这里简单介绍一下UTF-8,它是最常用的实现之一。

UTF-8最大的特点之一是它是一种可变长度的编码方法。它可以用1~4个字节来表示一个符号,字节长度根据符号的不同而不同。它的编码规则很简单,只有两条:

1)对于单字节符号,字节的第一位设置为0,后7位为该符号的Unicode编码。因此,对于英文字母,UTF-8编码和ASCII编码是相同的。

2)对于n字节符号(n >: 1),第一个字节的前n位全部设置为1,第n+1位设置为0,后面字节的前两位全部设置为10。其余未提及的二进制位都是该符号的Unicode编码。

下表总结了编码规则。字母X表示可以编码的位数。

Unicode范围| UTF-8编码(红色为标记位)
(十六进制)|(二进制)
-0000 0000-0000 007 f | 0x XXXXXX
0000 0080-0000 07FF | 110 xxxxx 10 xxxxx
0000 0800-0000 FFFF | 1110 xxxxx 10 xxxxx 10 xxxxx
001如果数字少于16位,则在数字前添加0。
微软为了全球布局,支持unicode,但当时大部分软件都是用ANSI编码的,Unicode还没有普及。我该怎么办?Windows想出了一种允许默认语言编码的方法,即当遇到非unicode的字符串时,使用默认语言编码进行解释。记事本的ANSI代码是默认代码。因此,中文文本保存在ANSI代码中。当在中文版中以GBK模式保存代码时,在繁体中文版的BIG5中读取时会完全混乱。

记事本也不愿意这么做,只好支持Unicode,但是有个问题。一段二进制代码,怎么确定是GBK还是BIG5还是UTF-16/UTF-8?记事本的做法是在TXT文件前面保存一个标签。如果记事本打开一个TXT并找到这个标签,这意味着它是unicode的。它叫BOM。如果是0xFF 0xFE,就是UTF16LE,如果是0xFE 0xFF,就是UTF16BE,如果是0xEF 0xBB 0xBF,就是UTF-8。如果没有这三样东西,那么扫描文本中的所有字符,如果所有字符都符合这个编码规则,那么就将编码更改设置为默认编码。修改后的伪代码如下:

列举常用几种汉字输入编码(汉字输入)插图(12)

也就是说,它是在“泰森斗牛”中输入的。因为“了”不符合unicode编码,所有字符都符合GBK编码标准,所以显示正常。微软认为完美地拥抱unicode是明智的,而且是万无一失的。此刻,心情是这样的。

列举常用几种汉字输入编码(汉字输入)插图(13)

因为& # 34;泰森血腥的牛& # 34;这是乱码,完全无法辨认。我们以“拥抱”为例完整的看一下window自带记事本的处理流程,验证一下我的猜测。

1.新建一个记事本文件:由于操作系统是中文,所以系统默认代码是GBK,但是没有指定代码(因为不知道存储什么)
2 .输入关键字“hug”:当前系统GBK,输入设备“hug”(十六进制C2A7)转换成二进制字节110000101010101011存储在内存中。

列举常用几种汉字输入编码(汉字输入)插图(14)

3.判断字符编码:符合110xxxxx 10xxxxxx的utf8编码方式。按照utf8换算成二进制000000 101011,换算成十六进制就是A7,也就是A7。

列举常用几种汉字输入编码(汉字输入)插图(15)

4.保存:将A7保存在磁盘中。
5。用window自带的记事本打开显示器

列举常用几种汉字输入编码(汉字输入)插图(16)

建议使用以下在线工具来验证上述内容:

unicode:https://www.qqxiuzi.cn/zh/unicode-zifu.php
在线十进制转换:https://tool.oschina.net/hexconvert
至此,记事本中那些怪异的字符彻底解决了。现在,我要把那些符合Unicode编码和GB2312的汉字(乱码集)献给:
觉得丢人把坤坤的bundle给崩了,包括把侧面加宽, 拉啦啦啦啦莱莱蓝蓝蓝蓝李丽丽李丽丽连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连连亮亮亮亮亮亮亮亮亮亮亮亮 亮亮亮亮两栋楼楼楼楼楼楼楼陆璐陆璐陆璐陆璐陆璐鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁鲁毛毛毛 妞妞妞妞浦侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬侬 Nu Nu Nu Nu Nu Nu Nu Shai shan shan删除范省的繁华,战胜圣师,丧狮,湿诗,尸虱,十石,真识,历史,箭。 施施施施舒刷,落,落,甩,帅栓,霜,双喜,水,睡,税,吸,瞬顺顺, 话说硕硕思思思思思思思思思思思思思思他他他他他他他太太太太太太太太谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谈谭维维魏魏魏魏魏魏魏 卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫卫 兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮兮 勇勇勇勇蛹勇勇鱼雨鱼雨袁媛袁媛袁媛袁媛袁媛袁媛圆圆圆圆圆圆圆圆圆圆圆圆扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎扎 知止知止知止知止知止知止知止知止知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知知

用自己的记事本打开上述文本的效果如下:

列举常用几种汉字输入编码(汉字输入)插图(17)

当然,如果你想知道以上汉字是怎么来的,怎么得到的:三联(喜欢收藏和关注)。哈,我会用java代码或者js代码提供给关注我的朋友们!

如何快速查看中文的unicode编码点

怎么看汉字的unicode码?这里有三种简单的展示方式。以下面为例,其代码如下:

列举常用几种汉字输入编码(汉字输入)插图(18)

①记事本++编辑器:用法见https://www.cnblogs.com/yucloud/p/10934511.html。

列举常用几种汉字输入编码(汉字输入)插图(19)

②崇高编者:用法见https://blog.csdn.net/VariatioZbw/article/details/107974563。

列举常用几种汉字输入编码(汉字输入)插图(20)

可以看到“中”由三个字节e4b8ad(去掉efbbbf BOM标签)组成,转换成二进制位:1100100 1011000 10101101。根据utf-8编码规则,转换成二进制码位:010110 00101101,再转换成十六进制。

列举常用几种汉字输入编码(汉字输入)插图(21)

③用js代码获取

列举常用几种汉字输入编码(汉字输入)插图(22)

奇怪现象的解释

Js脚本语言真的很方便。所见即所得。下面我用js来解释一下。其他语言也差不多【注:用MySQL操作时,可能会有意想不到的惊喜。欢迎朋友们留言讨论,评论区会有彩蛋】

对于& # 39;‐'=='-'其实这两个看似很长的字符,其实是不同的字符,如下图:

列举常用几种汉字输入编码(汉字输入)插图(23)

列举常用几种汉字输入编码(汉字输入)插图(24)

'abc‬'=='abc & # 39,这实际上在一个字符串中包含了一个不可见的字符(对应的unicode编码点也可以通过上面的方法找到,有兴趣的朋友尝试一下这里就不解释了),如下:

列举常用几种汉字输入编码(汉字输入)插图(25)

那为什么这里可以收到“”,而在微信或QQ里却找不到呢?大概是因为在别的地方交叉了吧(有兴趣可以在评论区讨论)!

列举常用几种汉字输入编码(汉字输入)插图(26)

列举常用几种汉字输入编码(汉字输入)插图(27)

编辑可以看见也可以查询,但是预览发布又穿越了!编辑可以看到也可以查询,但是预览版又穿越了!

本章出处:
1。Windows记事本的ANSI、Unicode和UTF-8编码模式有什么区别?Https://www.zhihu.com/question/20650946。关于字符编码的说明:ASCII、Unicode和http://www.ruanyifeng.com/blog/2007/10/ASCII UTF-8 _ Unicode _ and _ UTF-8..

3.https://blog.csdn.net/qfguan/article/details/121145568 UTF-8编码透析——神奇的“联通”乱码现象

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。

作者:美站资讯,如若转载,请注明出处:https://www.meizw.com/n/190017.html

发表回复

登录后才能评论