在J2EE中,乱码问题是一个令人头痛的问题,本文就J2EE中的乱码做一个小结,以求抛砖引玉。
首先,我们知道产生乱码的原因是因为不同的编码造成的,这就好比你和一个印地安人在说话,假设你完全不懂印第安语,而对方也不懂汉语,那你们所说的话,就会在对方的脑子里产生一个个的问号。那么怎么办呢?通常的做法,就是找一个翻译,在Java中,对编码也是这样的,来看一个例子
方法一:
1<html>
2<body>
3 <form action="demo02.jsp" method="post">
4 用户名:<input type="text" name="uname">
5 <input type="submit" value="go">
6 </form>
7</body>
8</html>这是一个简单的提交页面Deom01.html
<%@page contentType="text/html;charset=gbk" %>
<html>
<body>
<h1>输入内容为:<%=request.getParameter("uname")%></h1>
</body>
</html>
以上是一个对Deom01.html进行处理的JSP页面,其作用是为了取出Demo01的Uname值并显示,
输入内容为:??
当我们在页面Deom01中输入中文并提交好,发现提交后的显示内容为“?”号,这里,就相当于上面的不同语种的人说话一样,产生了“?”号,那么解决的办法,就是通过转换来解决这一问题:
<%@page contentType="text/html;charset=gbk" %>
<html>
<body>
<%
/**//*String name=request.getParmaeter("uname");//取得uname的值
byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
name=new String(b);//将Byte数组重新转换为所需要的格式
*/
String name=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
%>
<h1>输入内容为:<%=uname%></h1>
<%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
</body>
</html>
以上通过将取得的uname值转换为Byte数组,再将Byte数组转换为所需要的格式来进行转换,从而解决了乱码问题。
方法二:
设置统一的字符编码
在API中的Javax.servlet.http包下,有一个HttpServletRequest接口中,有这样一个方法
public void setCharacterEncoding(String env)
throws UnsupportedEncoding
其作用是设置统一的字符编码
<%@page contentType="text/html;charset=gbk" %>
<html>
<body>
<%
/**//*String name=request.getParmaeter("uname");//取得uname的值
byte[] b=name.getBytes("ISO8859-1");//将取得的值转换为Byte数组
name=new String(b);//将Byte数组重新转换为所需要的格式
*/
//String name=new String(request.getParameter("uname").getBytes("ISO8859-1"));//这里等同于上面
request.setCharacterEncoding("GBK");
String name=request.getParameter("uname");
%>
<h1>输入内容为:<%=name%></h1>
<%-- <h1>输入内容为:<%=request.getParameter("uname")%></h1> --%>
</body>
</html>
更改后运行,发现结果和以前的一样。
(注:GBK的范围大于GB2312 ,GB2312仅指简体中文,而GBK不仅指简体中文,还包含了繁体中文等中文。)
分享到:
相关推荐
要解决J2EE中的中文乱码问题,需确保以下几个关键环节的字符集统一: 1. 开发工具:例如MyEclipse、Eclipse等,应设置为统一的字符集,如UTF-8。 2. 页面编码:JSP文件头部需声明字符集,例如`;charset=UTF-8" %>`...
总结来说,解决J2EE应用中文乱码问题的关键在于理解字符集的原理,并在每个可能引起乱码的环节进行相应的编码设置。通过统一编码标准,尤其是使用广泛支持的UTF-8,可以显著减少乱码出现的可能性。在开发过程中,...
针对上述提到的几个方面,我们可以采取以下措施来解决J2EE乱码问题: ##### 2.1 服务器配置(Tomcat) 首先需要检查并修改Tomcat服务器的配置文件,确保其能够正确地处理不同类型的字符集。 - **修改Connector...
J2EE开发中遇到的乱码问题是一个常见的困扰,尤其是在处理中文字符时。本文将详细介绍如何解决这些问题,以一个基于Eclipse 3.3 + MyEclipse 6.0 + Tomcat 5.5的项目为例,该项目采用了Ext、Struts和Hibernate框架。...
总之,解决Java/J2EE中的中文乱码问题需要深入理解编码机制,合理配置系统环境,统一应用系统编码,并在各个层次进行适配和转换。通过以上所述的多种策略和方法,开发者可以有效地预防和解决乱码问题,确保应用的...
总的来说,解决J2EE中文乱码问题需要综合考虑输入输出的各个层面,通过设定统一的UTF-8编码并配合过滤器、页面声明和数据库配置,可以实现中文问题的终极解决。同时,对于跨平台的Java应用,选择UTF-8编码是最佳实践...
本文将围绕一个典型的案例来详细分析如何解决J2EE项目中的中文乱码问题,并总结出一系列实用的方法。 #### 一、问题背景与原因分析 在J2EE应用中,中文乱码主要出现在以下几个环节:用户输入数据时、服务器处理...
总之,解决J2EE平台下的乱码问题,需要从编码的来源、转换和目标各方面进行细致分析,并采取适当的措施确保整个数据流转过程中的字符编码一致性。通过合理的编码管理,可以有效地避免乱码问题,保证信息系统稳定可靠...
### J2EE中Struts框架下解决中文乱码问题的四种方法 在Java Web开发过程中,尤其是使用Struts框架时,经常会遇到中文乱码的问题。本文将详细介绍在J2EE环境下,利用Struts框架解决中文乱码问题的四种实用方法。 ##...
《JSP乱码解决方案J2EE》 在Java和JSP开发中,中文乱码问题是一直困扰开发者的老大难问题。这个问题的根源在于Java的内核和class文件基于Unicode编码,而许多其他数据存储媒介如数据库、文件、流则通常使用其他编码...
java 中文乱码问题的解决方案是多种多样的,但只有当我们了解了 java 系统的中文问题原理,才能对中文问题采取根本的解决之道。 java 系统的中文问题解决方案包括使用 String 的字节码转换、对 J2EE 容器进行编码...
总结来说,解决Java J2EE乱码问题的关键在于确保整个数据处理链路中字符编码的一致性,包括但不限于请求、响应、文件读写等环节。通过配置过滤器,我们可以对所有请求统一设置编码,从而有效地避免乱码问题。同时,...
处理 Java+jsp+mysql 开发 web 项目中文乱码问题 在 Java+jsp+mysql 开发 web 项目中,中文乱码问题是一个常见的...通过以上四个方面的解决方法,我们可以完全解决 Java+jsp+mysql 开发 web 项目中的中文乱码问题。
这种方式虽然能在一定程度上解决问题,但由于其依赖于特定容器,一旦J2EE应用脱离该容器环境,就可能会再次出现乱码问题。此外,这也违反了J2EE应用与容器分离的设计原则。 #### 三、深入理解Java系统中的字符集...
### Java/J2EE中文问题终极解决之道 在Java/J2EE开发过程中,中文字符编码问题一直是困扰许多开发者尤其是初学者的一大难题...希望本文提供的解决方案能够帮助开发者们顺利地解决Java/J2EE项目中的中文字符编码问题。
总之,解决J2EE应用中GET和POST方式的乱码问题需要从服务器配置、页面编码以及代码处理三个方面入手,确保整个数据传输链路中的字符编码一致。在实际开发中,应养成良好的编码习惯,始终使用UTF-8作为默认字符编码,...
根据给定文件的内容,本文将详细介绍几种常见的中文乱码问题及其对应的解决方案,重点讨论通过JSP页面之间以及JSP与Servlet之间的数据传递过程中遇到的问题,并介绍过滤器(filter)作为一劳永逸的解决方案。...
在基于J2EE的Web应用开发中,常常会遇到乱码问题,特别是在使用Tomcat 5.0作为应用服务器和MySQL 5.5作为数据库管理系统时。这个问题主要源于字符集和编码方式的不匹配。Java语言本身是使用Unicode编码,但不同平台...