资料整理

 

最简单的JSP中文问题解决方法

请看以下代码
<html:form action="/bbb/abc.do"
enctype="multipart/form-data">
        
标题
<input type="text" name="title"><br>
作者
<input type="text" name="creat"><br>
   
<input type="submit" name="submit">
</html:form>        
在标题text框中输入:  "中文"二字

就是这么简单,关键就是enctype属性,
天才同事在用Struts做上传功能时发现:
表单里的所有传递的参数会被转换成Unicode。
因此中文字符自然就不会被编码成ISO-8859-1(如%23)格式,而直接以Unicode形式传递。
大家可以试试,如果使用get方法,那么在提交时,连url中显示的都是中文参数
      www.zzz.com/bbb/abc.do?title=中文&creat=
这样的话Action: abc.do中也就可以直接拿到中文了:
abc.do(GBK)

public class abcAction{
    
public ActionForward execute(.){
System.out.println("output :  "+request.getParamete(title));
     }

}
      程序的运行结果为: "output : 中文"
     ^^   再也不用在Action中进行转码了

posted on 2006-08-04 09:06 谢玮 阅读(1593) 评论(4)  编辑  收藏

评论

# re: 最简单的JSP中文问题解决方法 2006-08-04 10:18 maquanjun

其实本来就不用在action里面转码的
tomcat自己提供一个fileter的例子就是专门解决这个问题的  回复  更多评论   

# re: 最简单的JSP中文问题解决方法 2006-08-04 10:35 Jonney

我还以为能对付所有的情况呢,还亲手做了试验。
原来只是在上传文件的时候有效。
顺便说一句:在Dreamweaver里如果表单里加入了文件上传控件,会自动在表单属性加上enctype="multipart/form-data"  回复  更多评论   

# re: 最简单的JSP中文问题解决方法 2006-08-04 16:31 noname

hehe.
http get方式默认走iso8859-1
tomcat也没有直接支持utf-8
配置以下 server.xml就好了。
过滤器也不是正确的方法  回复  更多评论   

# re: 最简单的JSP中文问题解决方法 2006-08-04 19:58 谢玮

不好意思,还请大家多指教,我们项目老大说filter转码经常会出现乱码,所以开始做的时候只好在Action中转码.
这种方法其实很有效的,不需要非得传文件,所有页面都有效的。不信的话大家可以再试试。也许是我写错了<form>标签,我没有测试过<form>,但我可以确定使用<html:form>标签是肯定有用的  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(1)

随笔档案

文章分类

文章档案

搜索

最新评论