咋样能让电脑出乱码-(咋样能让电脑出乱码呢)
来源:191路由网 2022-12-15 20:30:23
当我们处理文件或程序字符时,我们会不时遇到乱码,这些乱码非常混乱,大多数时候都是CV一定程度上,看看有没有类似情况的博文。如果是这样,就按照博文上的方式一步一步解决。如果找不到,很多人会直接emo了。其实乱码听起来很复杂,解决起来也不是很难。今天我们来谈谈如何解决字符的编码和乱码。
什么是编码编码是信息从一种形式或格式转换为另一种形式的过程,也称为计算机编程语言的编码。将文本、数字或其他对象编成数字,或将信息和数据转换为规定的电脉冲信号。编码广泛应用于电子计算机、电视、遥控和通信。编码是信息从一种形式或格式转换为另一种形式的过程。解码是编码的逆过程。
编码分类在日常开发中,编码格式很多,比如GBK、UTF-8、ASCII等等,很多人不知道这些编码格式之间有什么区别。他们只知道,如果编码格式与解码格式相同,则不会出现乱码问题。事实上,编码在计算机软件领域分为两类,一类是Unicode编码,另一种是非Unicode编码。
非Unicode编码常见的非Unicode编码有,ASCII、GBK、GB18030、ISO8859-1、windows-1252 等;
ASCII众所周知,世界上第一台计算机诞生于美国,当时的作者并没有想那么多,只考虑美国的需求(美国大约使用128个字符电脑),所以当时规定了128个字符的二进制方法,即一套标准,即ASCII,全称American Standard Code for Information Interchange,译成美国信息交换标准代码。
计算机存储的最小单位是byte,即8位,128个字符可以用7位表示,在ASCII最高位为0,另外7位可以用0~127来表示字符,其中ASCII编码中规定了每个数字代表0~127的含义,基本上可以覆盖键盘上的所有字符。
需要注意的是,在ASCII有少数特殊的不打印字符,常用的不打印字符有
ASCII代码对美国来说已经足够了,但世界上有这么多国家,字符和语言是不同的。因此,各国各计算机制造商发明了各种编码方法来表示自己的字符,为了保持与ASCII码的兼容性一般设置为1。也就是说,当最高位为0时,表示标准ASCII代码是各国扩展其字符的代码。也就是说,当最高位为0时,表示标准ASCII代码是每个国家在第一时间扩展其字符的代码。在这些扩展编码中,在西欧国家很流行ISO 8859-1和Windows-1252,在中国是GB2312、GBK、GB18030,等会逐一介绍这些编码的区别。
ISO 8859-1和Windows-1252ISO 8859-1又称Latin-1.它用字节表示字符,包括0~127和ASCII同样,128~255规定了不同的含义。在128~255中,128~159表示一些控制字符,160~255表示一些西欧字符,在中国不常用,所以不会一一介绍。
ISO 虽然859-1号称是西欧国家的统一标准,但它甚至是欧元(??)没有这个符号,因为欧元的符号相对较晚,而且ISO 8859-1标准较早。因此,在实践中应用更广泛Windows-1252 编码,这个编码和ISO 8859-1基本相同,区别只在于干数128~159。HTML5甚至明确规定,文件声明的话ISO 8859-1编码也应视为Windows-1252编码。为什么要这样?因为大多数人不知道ISO 8859-1和Windows-当他说1252的区别时,ISO 8859-1,其实他指的是Windows-1252,所以标准只是如此强制性。Windows-使用其中一些数字表示可打印字符
我相信国内开发者对这三种编码格式并不陌生。这三种是中文字符显示的编码格式。这三种之间有什么区别和联系?
GB2312在美国和西欧使用一个字节就足够了,但中文显然还不够。第一个中文标准是GB2312。GB2312标准主要针对简体中文常见字符,包括约700个汉字、一些罕用词和繁体字。
GB2312用两个字节固定表示汉字。在这两个字节中,最高位为1。如果是0,则认为是ASCII字符。在这两个字节中,高字节范围为0xA1~0xF7.低字节范围为0xA1~0xFE。
GBKGBK建立在GB在2312的基础上,向下兼容GB也就是说,2312,GB2312编码的字符和二进制表示 GBK编码完全一样。GBK共增加了1.4万多个汉字,其中包括繁体字在内的汉字约2.1万个。
GBK体内固定的两个字节表示,高字节范围为0x81~0xFE,低字节范围为0x40~0x7F和Ox80~0xFE。
需要注意的是,低字节是从Ox从40(即64)开始,也就是说,低字节的最高水平可能是0。你怎么知道它是汉字的一部分还是一个?ASCII字符呢?其实很简单,因为汉字是用固定字节表示的.在分析二进制流时,如果第一个字节的最高位为1,则读取下一个字节并将其分析为汉字,而不考虑其最高位置。分析后,跳到第三个字节继续分析。
GB18030GB18030向下兼容GBK,中日韩统一字符增加5.5万多个字符,共7.6万多个字符。
两个字节不能再表达了GB18030中的所有字符,GB18030使用变长编码,有的是两个字节,有的是四个字节。在字节编码中,字节表示范围和GBK一样。在四字节编码中,第一个字节值为0x81~0xFE,第二个字节的值为0x30~0x第三个字节值为0x81~0xFE,第四字节值为0x30~0x39。
在分析二进制时,如何知道是两个字节还是四个字节表示一个字符?看第二个字节的范围,如果是0x30~0x39是四个字节,因为两个字节编码中的第二个字节比这个大。
Unicode编码如果上述编码可以表示中英文所需的字符,那么世界上有各种各样的国家语言,每个国家都是基于ASCII要实现一套编码标准,就会有成千上万套编码。那就没有世界统一的标准了?有,这就是Unicode编码!
Unicode有一件事是,世界上所有的字符都分配了一个唯一的数字编号,从0开始x000000~0x10EEEF,包括110多万。但大多数常用字符都是0x0000~0xEEEF之间,即65536个数字。每个字符都有一个Unicode编号,这个编号一般写成16进制,加在前面U 。大多数中文的编号范围是U 4E00~U 9FFF。
简单理解,Unicode这样做的一件事就是把唯一的数字编号分配给所有的字符。它没有规定如何对应二进制,这与上述其他代码不同。其他代码不仅规定了哪些字符可以表示,还规定了每个字符对应的二进制是什么Unicode只规定每个字符的数字编号。目前常用的编码方案有UTF-8、UTF-16以及UTF-32。
UTF-8UTF-8用变长字节表示每个字符使用的字节数及其数量Unicode编号号大小有关,编号小使用字节少,编号大使用字节多,使用字节数为1~4。小于128的,编码与ASCII代码相同,最高位为0。其他编号的第一个字节有特殊的含义,最高的连续1表示几个字节,其他字节从10开始。
对于一个Unicode编号,具体怎么编码?首先将其视为整数,转化为二进制形式(去位0).然后将二进制位从右到左依次填充到相应的二进制格式x中。填充后,如果对应的二进制格式有未填充的x,则设置为0。
UTF-使用变长字节表示:
1)编号在U 0000~U FFFF直接用两个字节表示的字符(常用字符集)。需要注意的是, U D800~U DBFF其实编号没有定义。
2)字符值在U 10000~U 10FFFF四个字节需要表示字符(也称为补充字符集)。前两个字节叫高代理项,范围是U D800~U DBFF;后两个字节被称为低代理项,范围是U DC00~U DFFF。这里就不详细介绍数字编号和二进制之间的转换算法了。
区分是两个字节还是四个字节表示一个字符取决于前两个字节的编号范围U D800~U DBFF,是四个字节,否则是两个字节。
UTF-32最简单的是字符编号的整数二进制形式,四个字节。
但有一个细节节,就是字节的排列顺序。如果第一个字节是整数二进制的最高位,最后一个字节是整数二进制的最低位,那么这个字节序就叫天端(Big Endian,BE),否则,就叫小端(Little Endian. LE)。对应的编码方法分别是UTF-32BE和UTF-32LE。
可以看出,每个字符都用四个字节表示,非常浪费空间,实际使用较少。
Unicode编码小结Unicode世界上所有字符都有统一的编号,编号范围超过110万,但大多数字符在65536以内。Unicode没有规定如何将这个数字对应到二进制。
UTE-32/UTE-16/UTE-8都在做一件事,那就是把Unicode编号对应于二进制,对应方法不同。UTF-32使用4个字节,UTF-大部分是两个字节,少部分是四个字节,都不兼容ASCII编码有字节顺序的问题。UTF-8用1~4字节表示兼容ASCII编码,英文字符使用一个字节,中文字符大多使用三个字节。
编码转换有了统一的Unicode编码后,可兼容不同类型的编码格式,比如中文西字:
编码方式 | 十六进制 | 编码方式 | 十六进制 |
GBK | cef7 | UTF-8 | 西 |
Unicode | \西 | UTF-16 | 897f |
如何通过不同的编码格式Unicode编码兼容怎么样?它必须通过编码进行转换。我们可以认为每个编码都有一个映射表来存储其独特的字符编码和Unicode这个映射表是一种简化的说法,实际上可能是一种映射或转换方法。
编码转换的具体过程可以是:从A编码到B编码,首先找到A编码格式,通过A映射表找到Unicode编号,然后通过Unicode检查B的映射表,找到字符的B编码格式。
编码转换的具体过程可以是:从A编码到B编码,首先找到A编码格式,通过A映射表找到Unicode编号,然后通过Unicode然后检查B的映射表,找到字符的B编码格式。通过这种转换,可以实现不同编码格式的兼容性。
比如西从GBK转到UTF-8,先查GB18030->Unicode编号表,得到它的编号是\西,然后查Uncode编号->UTF-8表,得到其UTF-8编码: 西。乱码的根源
上面介绍了 编码电脑
相关阅读
-
-
win7启动无法修复-(win7启动无法修复此计算机)
win7启动无法修复(win7启动无法修复此计算机)还原的用户很多Win7系统会收到更新失败还原变更的提示,那么应该如何处理这种情况呢?让我们来看看如何解决它。Win7系统恢复不成功的解决方案1下机箱上的锁屏键,开机后,windows启动系统时,按键盘F8键,打开并进入安全模式。电脑2.仍有可电脑能进入安全模式或显示设备WindowsUp...
2022-12-15
-
-
咋样能让电脑出乱码-(咋样能让电脑出乱码呢)
怎样才能让电脑出乱码?(怎样才能让电脑出乱码?呢)当我们处理文件或程序字符时,我们会不时遇到乱码,这些乱码非常混乱,大多数时候都是CV一定程度上,看看有没有类似情况的博文。如果是这样,就按照博文上的方式一步一步解决。如果找不到,很多人会直接emo了。其实乱码听起来很复杂,...
2022-12-15
-
-
win10企业版变为专业版-(win10企业版变为专业版了)
win10企业版变成专业版(win10企业版变成专业版了)我们知道win10有几个不同的版本号,比如专业版、企业版、家用版、教育版。后两者无疑是家庭和学习培训,所以win10win企业版和专业版有什么区别?针对客户win如何选择企业版和专业版?带着这两个问题,我来解释一下。win企业版和专业版有什么区别?一、w...
2022-12-15
-
-
电脑开机识别不到u盘启动盘-(电脑开机识别不到u盘启动盘怎么办)
计算机无法识别u盘启动盘(计算机无法识别u盘启动盘怎么办)我们在日常工作中使用电脑。过了很长一段时间,电脑会卡住、崩溃,甚至蓝屏和黑屏。我们需要重新安装系统。电脑对于熟悉电脑的朋友来说,十分钟就能搞定,对于不太电脑了解电脑的朋友...
2022-12-15
-
-
u盘包装容易打开-(u盘包装容易打开吗)
u盘包装容易打开(u盘包装容易打开吗?随着USB-TypeC随着数据界面的普及,越来越多的手机、笔电、台式机开始大规模布局C口矩阵。更新缓慢的个人存储设备(U磁盘、移动硬盘等。)或主要是A口,这很容易造成许多不必要的麻烦,例如,在会议过程中,准备好的信息在A口的U盘中,而计算机只能使用C口,这将造成一个非常尴尬的局面。因此,2022年应将您的U盘等设备更新为C口形式,不仅在连...
2022-12-15
191路由网 - 192.168.1.1,192.168.0.1无线路由器设置教程
版权声明:本站的文章和图片来自互联网收集,仅做分享之用如有侵权请联系站长,我们将在24小时内删除