您的位置 首页 > 德语阅读

怎么解决德语乱码 为什么会有这么多字符集

大家好,今天来为大家解答怎么解决德语乱码这个问题的一些问题点,包括为什么会有这么多字符集也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

1、乱码这个东西相信大家都遇到过,今天我的女朋友三歪就火急火燎的上来找我:“亲爱的,我的idea怎么输出乱码了?”

2、我一顿操作就给他搞好了,但是三歪不愧是蘑菇街我的女朋友,好奇心跟我是一样样的,随我。

怎么解决德语乱码 为什么会有这么多字符集

3、为什么要有Unicode?UTF-8和GBK又有什么不同呢?

4、三歪坐在我的腿上对我撒娇似的说出这一连串的问题,我这个人宠粉但是更宠女朋友,所以就有了这篇文章。

5、我们知道计算机里存储的只会是0和1组成的字节流,而仅是数字满足不了我们的需求,我们还需要文本的处理等等,但是计算机只认识数字,所以我们需要告诉计算机什么数字代表什么字符

6、比如我指定0000代表A,0001代表B这样计算机就知道了,所以我要把AB这两个字符存入计算机的话,实际存储的就是00000001,其实就等于把每个字符定制一个唯一的编码

7、但是这是我的指定,不同的人想法是不同的,比如小明就喜欢1000表示A,1111表示B,那小明的计算机按照他指定的编码方式存储,就是10001111,之后传输给我的计算机,我拿到10001111,按照我的编码解出来可能就是%&了,这就乱码了。

8、所以乱码的本质就是编码和解码实现没对应上

9、有些同学可能对编码和解码的概念不太熟悉,我来解释一下:

10、可以看到随意编码的就会产生各自的计算机都无法正确解析的情况,所以需要有一个标准,大家都按那个标准来指定字符和数字的对应关系。

11、美国国家标准协会ANSI就制定了一个标准,即美国信息交换标准代码(ASCII),规定了常用字符集的集合和对应的数字编号,例如65表示A。

12、ASCII实际上是7位编码,用二进制代码表示就是0000000~1111111,不过1个字节是8位,所以一般都用8位来存储。可以看到ASCII代表了128个字符,这其实是倾美国的编码,你看同样讲英文的英国,ASCII上都没英镑的标记。

13、还有人家的韩文,日文等等,更别说咱们中文了。

14、1个字节最多只能表示256个字符,所以对我们来说不够用,因此需要扩展,像GB2312就是我们国家标准总局发布的《信息交换用汉字编码字符集》,后来又发布了GBK,这个K就是扩展的意思,在GB2312的基础上又添加了很多比如繁体字等字符。

15、所以说等于每个国家都有自己的标准,因为语言都是不同的,各字符集的不同就导致计算机之间文档的交流非常困难,因此大家又开始了一波标准化。

16、像美国的ANSI组织制定了ANSI标准字符编码,其实就是制定平台默认的编码,比如中国的操作系统就用GBK,如果是美国就用ASCII,操作系统会预装这些标准字符集。

17、不过这只能解决一份文档一份字符编码的情况,假设我文档里面有日语、法语、德语、俄语、中文,你说怎么办?

18、所以又搞了个Unicode,又称统一码、万国码、单一码

19、Unicode字符集涵盖了目前人类使用的所有字符,并为每个字符进行统一编号,分配唯一的字符码,你看这种事情总得有人做,不然就没法统一。

20、这里有几个术语我解释一下,让大伙更加清晰一些。

21、对于Unicode而言有一点和之前的编码不太一样,它将字符集和编码实现解耦了。

22、之前的编码比如ASCII编码、GBK编码等等,它们的字符集和编码实现是绑死的,你可以理解成以前的编码其实就是查表,有一个固定的表格里面存储这字符和对应固定的二进制,比如A对应的编号是65,其二进制序列就是01000001。

23、而Unicode不一样,它将字符集和字符编码实现分开了,比如A对应的编号是65,但是对应的二进制序列就不一定了,得看具体的字符编码,如果是UTF-8编码,则是01000001,如果是UTF-16编码(大端),则是0000000001000001。

24、这其实也是为什么我们现在常用UTF-8而不是UTF-16的原因,可以看到UTF-16编码存储效率较低,最少使用两个字节,并且像C语言的很多函数都会将0x00字节作为字符串的停止符来解析,所以才搞了个UTF-8,其使用1~4字节为每个字符编码,是变长的,具体如何编码的我就不说了,随便查一下就有。

25、至此我们已经清晰了乱码的根源,也知晓了为什么会有那么多字符编码的出现,毕竟语言多,一开始出了个ASCII,但是对于其他国家来说不够用,于是都各自进行了扩展。

26、而编码多了各个国家之间难以做到统一,不易兼容,所以后来国际组织制定搞了个Unicode字符集,对所有字符做了统一的编排,并且为了使得编码更加灵活把字符集和编码实现分开来。

27、对了,为什么英文都不会出现乱码就是因为绝大部分的字符集都是基于ASCII扩展的,所以都兼容ASCII。

28、本期就是应该算是一期比较有意思的科普系列,但是还是渴求你的点赞哈哈。

29、敖丙把自己的面试文章整理成了一本电子书,共1630页!

30、干货满满,字字精髓。目录如下,还有我复习时总结的面试题以及简历模板,现在免费送给大家。

31、我是敖丙,你知道的越多,你不知道的越多,感谢各位人才的:点赞收藏评论,我们下期见!

32、文章持续更新,回复【资料】有我准备的一线大厂面试资料和简历模板,,有大厂面试完整考点。

关于怎么解决德语乱码的内容到此结束,希望对大家有所帮助。

本站涵盖的内容、图片、视频等数据,部分未能与原作者取得联系。若涉及版权问题,请及时通知我们并提供相关证明材料,我们将及时予以删除!谢谢大家的理解与支持!

Copyright © 2023