关于JavaWeb技术开发中中文乱码问题的深入探讨摘要:在利用Servalete/Jsp技术开发Web应用程序的时候,不可避免的会遇到中文乱码问题
如:页面编码不一致;表单get提交时产生乱码问题;表单使用post方式时产生的乱码问题等
本文首先详细分析这些中文乱码问题产生的原因,并以图例清晰具体的展现出来,最后在此基础上提出详细合理的解决方案
关键字:JavaWeb技术开发中文乱码字符集1.引言为了能在计算机中表示不同语言中字符,每个国家(或区域)都规定了计算机信息交换用的字符编码集,如美国的ASCII,中国GB2312和GBK,日本的JIS等
Java语言内部用Unicode来表示字符,Unicode被称为统一的字符编码标准集,它为几乎每种语言中的字符设定了唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求
这也使得Java具有良好的可移植性,符合其国际化的思想
然而在实际应用中,由于应用程序的运行环境不同,和各个本地字符集的补充、完善,以及系统或应用程序实现的不规范,转码时出现的中文乱码问题时时困扰着程序员和用户
中文乱码产生的原因Java中文问题一直困扰着很多初学者,如果了解了Java系统的中文问题原理,我们就可以对中文问题能够采取根本的解决之道
最古老的解决方案是使用String的字节码转换,这种方案问题是不方便,我们需要破坏对象封装性,进行字节码转换
还有一种方式是对J2EE容器进行编码设置,如果J2EE应用系统脱离该容器,则会发生乱码,而且指定容器配置不符合J2EE应用和容器分离的原则
在Java内部运算中,涉及到的所有字符串都会被转化为UTF-8编码来进行运算
那么,在被Java转化之前,字符串是什么样的字符集
Java总是根据操作系统的默认编码字符集来决定字符串的初始编码,而且Java系统的输入和输出的都是采取操作系统的默认编码