在基于JAVA的编程中,经常会碰到汉字的处里及显示的问题,比如一大堆乱码或问号。这是因为JAVA中默认的编码方式是UNICODE,而中国人通常使用的文件和DB都是基于GB2312或者BIG5等编码,故会出现此问题。本文抽取了UFO中的演示实例来介绍如何解决中文乱码问题, UFO是www.gm365.com发布的一个web server软件(以建设网站的稳定性和高负载能力,快速的响应速度和低CPU消耗的功能而开发)。
1、解决jsp中文乱码问题
在jsp中,当使用out.print(request.getParameter("parameter-name"))输出表单数据时,如果表单数据为中文字符时,则输出的内容是乱码。引起中文乱码的原因是,在默认情况下,提取表单数据使用的编码格式为UTF-8.为了解决中文乱码问题,首先要使用 ISO-8859-1 编码格式将表单数据存储到字节数组中,然后再使用借助 gb2312的编码格式将字节数组转换为字符串。完整的处理表单的程序代码如下:
例如:我们要将用户提交的表单数据输入到页面,直接用如下方法将会在parameter-name为中文字符时出现乱码
<%
String pName =request.getParameter("parameter-name");
out.println(pName);
%>
需要对其做如下改动可解决此类中文字符乱码问题:
<%
String pName =request.getParameter("parameter-name");
byte[] bytesStr=pName.getBytes("ISO-8859-1");
out.println(new String(bytesStr,"gb2312"));
%>
分享到:
相关推荐
string fileName = Request.QueryString["filename"]; Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.AppendHeader("Content-Disposition", "attachment;...
数据存储在HttpServletRequest中,请求结束后数据自动销毁。 1. 访问Request域: ```java ActionContext context = ActionContext.getContext(); Map, Object> requestMap = context.getRequest(); requestMap....
//结束当前的session request.getSession().invalidate(); //跳转回登录页面 response.sendRedirect(request.getContextPath()+"/admin/login.jsp"); } public void register(HttpServletRequest request, ...
以下将详细说明乱码出现的原因和解决方法。 首先,了解乱码产生的背景。乱码通常由于字符编码不一致导致,比如服务器返回的内容编码格式和客户端处理时所用的编码格式不匹配。在HTTP请求中,内容编码的处理尤为重要...
3. `destroy()`方法在过滤器生命周期结束时调用,用于释放过滤器占用的资源。 然后,在`web.xml`部署描述符文件中,我们需要配置这个过滤器。`<filter>`元素定义了过滤器的名称和类名,`<filter-mapping>`元素则...
正确做法是在关闭流之后,结束响应并确保所有数据已发送到客户端。 总结起来,这些知识点涵盖了JSP中的页面跳转、`session`管理、数据传递、编码问题、错误处理以及调试技巧,这些都是开发JSP应用程序时需要注意的...
本资源总结了jsp和servlet的阶段性测试,涵盖了servlet和jsp的基础知识点,包括servlet的生命周期、jsp的隐含对象、Filter的用途、Listener的类型、Request、Session和Application的区别等。 1. Servlet的生命周期...
- **乱码问题**:当`Request`对象获取客户提交的汉字字符时,可能出现乱码问题。 - **解决方案**:将获取的字符串先用ISO-8859-1编码,再转化为字符串对象。 ```java String textContent = request.getParameter...
对于POST请求,为了避免中文乱码,需要设置字符编码,如`request.setCharacterEncoding("utf-8")`。 2. **数据响应**:通过`HttpServletResponse`对象的`getWriter()`方法获取`PrintWriter`,然后使用`println()`等...
需要注意的是,为了避免乱码问题,通常会在处理表单数据前设置字符编码,如`request.setCharacterEncoding("GBK")`。 4. **session对象**: session对象提供了管理会话状态的能力。在用户的一次访问期间,session...
通过`session.setAttribute(String name, Object value)`设置属性,`session.getAttribute(String name)`获取属性,以及`session.invalidate()`结束会话。需要注意的是,过多使用session会导致内存泄漏,应谨慎使用...
这里的`stat()`函数用于验证表单中的开始时间和结束时间是否符合要求,如果验证通过,则通过调用`document.form1.submit()`来提交表单。 #### 方法二:使用`<input type="submit">`实现表单提交 `...
解决中文乱码问题,通常需要在处理请求参数前设置字符编码,如`request.setCharacterEncoding("GBK")`。`RequestDispatcher`接口的`forward()`方法可以将请求转发到其他资源。 3. **response对象**: response对象...
此外,处理汉字信息时,由于字符编码问题可能导致乱码。可以通过将字符串编码转换为特定的字符集(如ISO-8859-1)再解码来解决: ```java String.textContent = request.getParameter("boy"); byte[] b =....
此外,还可以设置字符编码,避免乱码问题: ```java request.setCharacterEncoding("UTF-8"); ``` 还可以获取客户端IP地址: ```java String ip = request.getRemoteAddr(); ``` 以及获取当前目录或指定文件的真实...
18. `URLDecoder.encode()` 和 `URLDecoder.decode()`:用于解决中文乱码问题。 19. `filterChain.doFilter(request, response)`:处理请求并将其转发给下一个过滤器。 **数据库模块** 1. `Connection`:数据库...
request获取中文参数时可能出现乱码问题,需设置正确的编码。 8. **请求(request)生命周期与作用范围** - 请求开始到响应返回,只在当前请求范围内有效,服务器跳转也视为一次新的请求。 9. **响应对象...