以前在工作中遇到导出中文乱码时,就 google 一下,看见把 utf- 8 编码换成 GBK 之类的编码,导出在 Excel 中打开就不会乱码了。只是解决了当前问题。对字符编码没有很好的认识。这次又遇到了,遂记录之。
参考的资料:
https://my.oschina.net/leejun…
http://www.ruanyifeng.com/blo…
前辈们已经对字符编码讲的很好了,通俗易懂。我就简单的整理下用自己的话复述一遍。
1、我们为什么需要字符集和字符编码?
计算机只认识 0 和 1,不认识其他任何字符。而计算机是为人服务的,是人就有沟通语言,有语言就有语言符号,要实现普通人与计算机沟通,字符编码就必然出现了,同理,各种语言就会有不同编码方式的字符编码。字符编码的诞生是人类对科学技术妥协的结果。
2、是谁主导字符编码?
老美,计算机是老美发明的,尽管现在全世界开放共赢,作为先驱者在一定程度上具有话语权(不服?有本事你也搞个革命性的发明来)。后来者也只能依据他来制定,这是历史包袱,任何时代都无法改变。他根据他们的语言特色,美国国家标准学会 (American National Standard Institute , ANSI) 制定了 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)编码。我建议:不仅记住缩写,要记住全称。
3、字符编码为什么有很多方式。
全世界都知道计算机好,都要用了。我们知道,语言成为不同国家、民族最鲜明的特征之一。怎么办,每个国家自己都制定一套类似 ASCII 码的编码,就是我们常说的 GBK、GB2312、BIG5、Unicode 等等。原理一样,只是对应规则不同而已。
4、Unicode 万国码(是一种字符集)
顾名思义:就算你有一万个国家,有一万种语言字符。我也能装得下。大家只要生活在地球上,只要使用计算机,突破语言限制,使用此种字符集。
5、在当前实际运用过程中,最普遍用到的是 UTF- 8 方式的编码。
以上做个简单的总结。这是从计算机层面总体上对字符编码的认识。
有时间我会总结一篇关于 mysql 中一些字符相关知识。
2、mysql 中的一些字符集、字符编码知识