背景:

日常工作中,或多或少的都会遇到编码问题,大都定义为UTF-8 或者GB2312 都能处理,但是总觉得一知半解,今稍微总结下

白话理解:

1.字符编码产生原因

在计算机底层存储中都是由一串01编码组成的二进制文件,但是人类无法读懂复杂冗长的二进制文件,所以编码的产生就是为了将人类文字和二进制文件相互转换。

 

 2.字符编码(密码本 字符集)的发展史

   字符编码的发展细节查看摘录部分,此处想说的是ASCII、GB2312、GBK、GB18030、UTF8、ANSI、Latin1等编码的产生都是对应时期一个产物,他们的产生都是为了解决对应之前编码的一个问题,所以其兼容性如下

 

 

类似例子 如记事本里打“联通”为什么会变成乱码?_菠菜cqb的博客-CSDN博客_联通为什么是乱码(https://blog.csdn.net/spinachcqb/article/details/11616451)

 ==》UTF-8编码是现在标准的解决方案,当遇到乱码或者编码出错的时候,先想想原本数据是用什么编码存储的,然后使用对应的方式解码就好。单纯从二进制数据是无法判断它是用什么编码存储的。

正是由于不完全兼容,所以经常会出现乱码问题,乱码的原因是编码(加密)和解码(解密)用的不是同一个字符集(密码本)。服务器和计算机内存中统一使用的都是Unicode编码,当需要保存到硬盘或者需要传输的时候,就一般转换为UTF-8编码,但是实际文件保存时部分字符不属于UTF-8 部分,所以utf-8 无法找到正确的码值转换关系就乱码或者解码不正确。综上解决乱码问题的方式就是文件打开和保存都明确指定字符编码,不要让计算机去匹配猜测用哪个编码,有可能猜错的!!!

 

理论摘录:

 

 

 

 

 

 

 

 

 

 

 

学习摘抄原文链接:

1.https://www.liaoxuefeng.com/wiki/1016959663602400/1017075323632896

 

2.https://blog.csdn.net/huanglong0438/article/details/117652697

3.https://zhuanlan.zhihu.com/p/107943002
4.https://zhuanlan.zhihu.com/p/46216008

原文地址:http://www.cnblogs.com/Spring-Rain/p/16897891.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性