Form表单中文乱码

主题:求助:怎么解决表单中的中文乱码?
本文来自: 浪曦视频在线 作者: cfq1211 发表于: 2008-6-26 14:23 阅读: 867 人 收藏

提交表单时,如果表单中输入的信息是中文。跳转到第二个页面获得的信息就会是乱码;我用下面的代码还是不能解决,求老师和各位同学指教,谢谢。
<%
String str = request.getparameter("username");
str = new String(str.getBytes("iso8859_1"),GBK);
out.println(str);
%>



收藏 分享




work 发短消息
加为好友
work 当前离线

UID22954 帖子83 精华0 浪曦币0 枚 金币0 枚 阅读权限1 在线时间33 小时 注册时间2008-3-25 最后登录2009-5-13

浪曦会员



浪曦币0 枚 金币0 枚 最后登录2009-5-13 2#
发表于 2008-6-26 16:41 | 只看该作者
提供得不详细

前面传username的页面是什么编码呢?显示正确嘛?,在这个页面又是什么编码?在下面第一句后输出看一下是否正确
<%
String str = request.getparameter("username");
out.println(str);
str = new String(str.getBytes("iso8859_1"),GBK);//把iso8859_1改成: ISO8859_1 试一下
out.println(str);
%>

[ 本帖最后由 work 于 2008-6-26 16:45 编辑 ]




TOP


随风 发短消息
加为好友
随风 当前离线

UID29086 帖子98 精华0 浪曦币145 枚 金币0 枚 阅读权限1 在线时间41 小时 注册时间2008-5-30 最后登录2009-10-30

浪曦会员



浪曦币145 枚 金币0 枚 最后登录2009-10-30 3#
发表于 2008-6-26 16:43 | 只看该作者

老是这样转化也很麻烦的,加个过滤器好了



达摩祖师说:“不要太执著,一切随缘!”
TOP


tongmin_tsai 发短消息
加为好友
tongmin_tsai 当前离线

王下骑士

UID6264 帖子107 精华0 浪曦币29 枚 金币0 枚 阅读权限150 在线时间66 小时 注册时间2007-6-16 最后登录2009-9-2

荣誉会员



浪曦币29 枚 金币0 枚 最后登录2009-9-2 4#
发表于 2008-6-26 21:54 | 只看该作者

恩,我也觉得用过滤器是最好的,tomcat的example里面就有个字符的过滤器




TOP


dhaigang 发短消息
加为好友
dhaigang 当前离线

UID28479 帖子16 精华0 浪曦币0 枚 金币0 枚 阅读权限1 在线时间3 小时 注册时间2008-5-22 最后登录2011-3-9

浪曦会员



浪曦币0 枚 金币0 枚 最后登录2011-3-9 5#
发表于 2008-6-27 14:30 | 只看该作者






TOP


dhaigang 发短消息
加为好友
dhaigang 当前离线

UID28479 帖子16 精华0 浪曦币0 枚 金币0 枚 阅读权限1 在线时间3 小时 注册时间2008-5-22 最后登录2011-3-9

浪曦会员



浪曦币0 枚 金币0 枚 最后登录2011-3-9 6#
发表于 2008-6-27 14:35 | 只看该作者

hgjfghjf题要





TOP


jxaujunjun 发短消息
加为好友
jxaujunjun 当前离线

UID31965 帖子22 精华0 浪曦币0 枚 金币0 枚 阅读权限1 在线时间7 小时 注册时间2008-6-29 最后登录2008-12-11

浪曦会员



浪曦币0 枚 金币0 枚 最后登录2008-12-11 7#
发表于 2008-6-29 11:50 | 只看该作者
回复 1# 的帖子

你可以在JSP的页头加上: <%@ page language="java" pageEncoding="gbk"%>




TOP


renlei413326889 发短消息
加为好友
renlei413326889 当前离线

UID31410 帖子40 精华0 浪曦币0 枚 金币0 枚 阅读权限1 在线时间10 小时 注册时间2008-6-24 最后登录2011-4-14

浪曦会员



浪曦币0 枚 金币0 枚 最后登录2011-4-14 8#
发表于 2008-6-29 13:51 | 只看该作者
回复 1# 的帖子

<%
request.setCharacterEncording("gbk");-------------------加上这一句
String str = request.getparameter("username");
str = new String(str.getBytes("iso8859_1"),GBK);
out.println(str);
%>




TOP


most 发短消息
加为好友
most 当前离线

UID1571 帖子355 精华0 浪曦币10 枚 金币1 枚 阅读权限150 在线时间11 小时 注册时间2007-3-15 最后登录2011-12-23

荣誉会员



浪曦币10 枚 金币1 枚 最后登录2011-12-23 9#
发表于 2008-6-29 21:34 | 只看该作者
回复 9# 的帖子

楼主已经有这句了str = new String(str.getBytes("iso8859_1"),GBK);
加上request.setCharacterEncording("gbk");反而会出错
8楼的是一种可能
但是具体情况不明 建议楼主把两个页面的代码贴出来看看。。




TOP


zhangxu261 发短消息
加为好友
zhangxu261 当前离线

UID17838 帖子138 精华0 浪曦币2 枚 金币0 枚 阅读权限1 在线时间15 小时 注册时间2008-1-4 最后登录2009-10-26

浪曦会员



浪曦币2 枚 金币0 枚 最后登录2009-10-26 10#
发表于 2008-6-30 19:21 | 只看该作者

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 CharacterFilter implements Filter {

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
}

}

编写这样的一个servlet(过滤器),把请求的编码格式设置为utf-8或者gbk或者gb2312这样表单所提交到服务器的参数则已这种编码方式编码传递到服务器,还需要在web.xml文件中加入这样一段,表示所有的请

求,都要经过该servlet处理一下


CharacterFilter
cn.zhangxu.util.CharacterFilter


CharacterFilter
/*

__________________________________________________________________________________--

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 CharacterFilter implements Filter {

public void destroy() {
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding("utf-8");
chain.doFilter(request, response);
}

public void init(FilterConfig arg0) throws ServletException {
}

}


编写这样的一个servlet(过滤器),把请求的编码格式设置为utf-8或者gbk或者gb2312这样表单所提交到服务器的参数则已这种编码方式编码传递到服务器。


CharacterFilter
cn.zhangxu.util.CharacterFilter


CharacterFilter
/*

还需要在web.xml文件中加入这样一段,表示所有的请求,都要经过该servlet处理一下




相关文档
最新文档