在进行网页编程中我们经常会遇到一些乱码问题,诸如GET/POST提交的数据在服务器端处理时出现乱码,浏览器显示服务器端响应出现乱码等,ajax交互过程中出现乱码,而更糟糕的是每次遇到问题我们都要到网上去搜索一堆的解决方案,但是这些方案大都都捉襟见肘,只能解决部分问题。
分析主要原因,是我们对编码基本知识,java语言对编码处理,浏览器/服务器端在请求响应的过程中对编码的处理,URL的编码规则,还有ajax应用编码规则了解不够透彻等导致的。
本文将从以上这几个原因出发,分析乱码出现的原因和解决方案。
?
一、编码基础知识
1.1????????????字符、字符集和编码
字符:是文字与符号的总称,包括文字、图形符号、数学符号等。
字符集:就是一组抽象字符的集合。字符集常常和一种具体的语言文字对应起来,该文字中的所有字符或者大部分常用字符就构成了该文字的字符集,比如英文字符集。一组有共同特征的字符也可以组成字符集,比如繁体汉字字符集、日文汉字字符集。字符集的子集也是字符集。
????字符和字符集之间的关系可以用下图表示:
1.2????????????常用字符集
????ASCII