`
hzxdark
  • 浏览: 77191 次
社区版块
存档分类
最新评论

JSP中文问题汇总

阅读更多

以下总结这段时间以来遇到的中文问题汇集:

注:以下“后台”字眼,相当于在servlet内,或者某一个类内,或者struts的action内。

1.一字符串在后台用system.out.println输出正常,保存在session里到JSP页面显示乱码

最初的乱码问题.

原因:似乎是默认的JSP页面采用8859-1编码,显示不了中文。

解决:在JSP页面上方加个<%@ page contentType="text/html;charset=utf-8"%>解决。当然,也可以用charaset="gbk","gb2312"之类的编码,不过建议还是用utf-8,详细原因去看看jdon板桥里人的那篇《中文乱码终极解决方法》。

 

2.提交表单,在后台读取表单内容发现乱码

原因:request的默认编码问题,具体不甚清楚,没看过tomcat源代码。。。

解决:写个fileter,具体如下:

package operator;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class SetCharacterEncodingFilter implements Filter {
 protected String encoding = null;

 protected FilterConfig filterConfig = null;

 public void init(FilterConfig filterConfig) throws ServletException {
  this.filterConfig = filterConfig;
  this.encoding = filterConfig.getInitParameter("encoding");
 }

 public void doFilter(ServletRequest request, ServletResponse response,
   FilterChain chain) throws IOException, ServletException {
  // TODO �Զ���ɷ������
  request.setCharacterEncoding("UTF-8");
  chain.doFilter(request, response);
 }

 public void destroy() {
  // TODO �Զ���ɷ������
  this.encoding = null;
  this.filterConfig = null;
 }

 protected String selectEncoding(ServletRequest request) {
  return (this.encoding);
 }
}

web.xml配置:

在servlet-mapping后加入以下内容:

 <filter>
  <filter-name>Set Character Encoding</filter-name>
  <filter-class>operator.SetCharacterEncodingFilter</filter-class>
   <init-param>
   <param-name>encoding</param-name>
   <param-value>UTF-8</param-value>
  </init-param>
 </filter>

 <filter-mapping>
  <filter-name>Set Character Encoding</filter-name>
  <url-pattern>/*</url-pattern>
 </filter-mapping>

3.下载时,“另保存为”默认名字显示乱码

原因:不清楚。。。

在tomcat安装目录的config/sever.xml内的

    <Connector
port="80"               maxHttpHeaderSize="8192"
               maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
               enableLookups="false" redirectPort="8443" acceptCount="100"
               connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8" />

加进最后的“URIEncoding="UTF8"

4.在后台用system.out.println()输出正常,保存到mysql数据库EMS显示乱码,读回数据也是乱码

原因:mysql默认采用的是latin1编码;

解决:创建表的时候要修改成utf-8。如果已存在表,用EMS的话,直接修改table-property里面的default charater set就可以了,其他管理工具不知道,没用过。

5.在后台用system.out.println()输出正常,保存到mysql数据库EMS显示乱码,读回数据时——居然正常了,直接往数据库里插入正常的中文,读出——居然乱码了;

原因:EMS管理工具的默认显示问题

解决:register数据库时,client default  charater set改utf-8

注:这该死的问题困扰了我好长一段时间,一直以为我程序有问题,检查了N久,发现居然是工具显示问题。。

6.COMMON-UPLOAD 上传中文名文件时,显示乱码

原因:common-upload组件默认采用系统的编码,而页面传过来的请求采用UTF-8编码。

我的系统是简体中文WINDOWS 2K3,系统编码是GBK,当页面请求过来时,UPLOAD就把UTF8编码的流直接按GBK编码了。。。如果用new String(oldStr.getBytes("gbk"),"utf8)可以发现,部分中文可以还原回去。

解决:网上的说法五花八门,甚至有归罪于这是UPLOAD的BUG,其实只要在

 DiskFileUpload fu = new DiskFileUpload();

后加一句:

fu.setHeaderEncoding("utf8");

就解决了。。。

看来有时候还是直接读英文帮助手册来得正确。。。

 

 

分享到:
评论

相关推荐

    jsp表单验证汇总

    只能是汉字 (/[^\u4E00-\u9FA5]/g,'')"&gt;3." 只能是英文&lt;script language=javascript&gt;function onlyEng(){if(!(event.keyCode&gt;=65&&event.keyCode))event.returnvalue=false;}&lt;/script&gt;&lt;input onkeydown="onlyEng();...

    jsp程序汇总

    JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它 [1] 是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。

    Java 相关学习必备各类文档打包总汇

    CSS2.0中文手册.chm EJB.chm Hibernate_3.2.0_Reference_zh_CN.chm html语法教程.chm J2EE 1.3.1 API.chm J2EE_6.0_API.chm Javascript10.chm JAVA中文_API.CHM JDK_API_1_6_zh_CN.CHM.lnk Jsp帮助文档.chm Jsp精华...

    收集的常见的专业问题解决办法.rar

    2009-03-20 16:37 254350 86752 常见的专业问题解决办法\解决Struts中ApplicationResources_properties文件不支持中文问题_微科工作室 QQ:28790953____.mht 2009-02-25 08:45 文件夹 文件夹 常见的专业问题解决办法...

    jsp17教师工作量管理系统(jsp+servlet+mysql)-csdn.rar

    教师业绩管理系统将改变以往个人填报和单位审核的流程关系,由系统生成教师的真实工作业绩,学年末只需做简单的统计汇总,所需报表系统就会生成。教师业绩管理系统的基本功能:用户注册管理、 业绩项目管理、 指标...

    Java_资料学习汇总(API)

    Jsp帮助文档.chm,Jsp精华文章.chm,JAVA中文_API.CHM,等

    ajax乱码解决汇总

    RESPONSETEXT里面的中文多半会出现乱码,这是因为xmlhttp在处理返回的responseText的时候,是把 resposeBody按UTF-8编码进解码考形成的,如果服务器送出的确实是UTF-8的数据流的时候汉字会正确显示,而送出了GBK编码...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    2.8.1 在JSP页面中编写中文之后不能保存 2.8.2 访问JSP页面出现乱码 2.8.3 在JSP页面中使用Include指令后,JSP不能编译 2.9 精彩回顾 第3章前人栽树后人乘凉 ——、JSP内置对象 3.1 本章学习任务 3.1.1 本章知识...

    这种语言chm,api中文帮助文档集合

    关于各种编程语言中文帮助文档的总汇,有jsp帮助文档、jQuery帮助文档、javaEE帮助文档、javaScript帮助文档、Hibernate/struct/spring三大框架帮助文档,HTML5/css4.0等帮助文档

    Java Web应用详解.张丽(带详细书签).pdf

    11.3 Struts 开发中的中文乱码问题 11.4 Action 数据获取与传递 11.5 Struts 表单验证 第12章 标签库及其应用 12.1 Struts标签库基础知识 12.2 Struts标签库应用实例 12.3 JSTL基础知识 12.4 EL表达式基础...

    在线考试系统文献综述

    本文所述的网上考试系统可分后台管理模块和前台客户端显示模块,后台管理模块又分用户管理,考生信息管理,试题信息管理,问题信息管理,考试设置及考试评分管理等。基于本系统Web应用程序部署在Web服务器上,客户端无需...

    Grid++Report5报表工具 版本5.5.0.8

    提供了丰富例程,C/S报表包括VB.NET、C#、VB、VC、Delphi、C++Builder、VFP、中文编程易语言,B/S报表包括ASP.NET,ASP,PHP,JSP。 Grid++Report 网站:http://www.rubylong.cn Grid++Report 演示:...

    java面试题以及技巧

    │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE...

    java面试题目与技巧1

    │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE...

    java面试题及技巧4

    │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE...

    java面试题及技巧3

    │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE...

    java面试题以及技巧6

    │ J2EE综合--Struts常见错误的全面汇总.txt │ java程序员面试资料.zip │ JAVA笔试题(上海释锐).pdf │ MIME简介.txt │ SCJP试题详解.pdf │ SQL面试题_心灵深处.htm │ Struts+Hibernate+Spring轻量级J2EE...

    前端学习书籍汇总(JavaScript语言精粹;大巧不工Web前端设计修炼之道;高性能JavaScript用AngularJS开发下一代Web应用)

    汇总前端知识分享,各类书籍打包奉上,满足当前环境下前端知识技能学习,该系列包括用AngularJS开发下一代Web应用JavaScript语言精粹;大巧不工Web前端设计修炼之道;高性能JavaScript;网站重构—应用Web标准进行设计...

    birt2.5.2最全面的开发手册

    简介: 1 Birt介绍 5 1.1 报表介绍 5 1.2 基本概念 5 1.3 丰富的报表 5 1.4 BIRT报表由四部分组成 6 1.5 报表设计器 6 2 Birt插件安装 8 2.1 插件版本说明 8 ...5.7 BIRT在jsp中tag使用 116 5.8 关于BIRT编码 123

Global site tag (gtag.js) - Google Analytics