表单提交中文无效+乱码,怎么解决?

weider 2011-10-28 05:26:23
login.jsp


<%@ page pageEncoding="UTF-8" %>
<%@ page import="bin.*" %>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>

<% if(session.getAttribute("loginUser")!=null)
{
%>

<jsp:forward page="loginSuccess.jsp"/>
<%
}
%>
<jsp:useBean id="loginForm" class="bin.LoginFormBean" scope="page"/>
<jsp:setProperty name="loginForm" property="*" />

<%
if(request.getParameter("s")!=null)
{
if (loginForm.validate())
{
DbUtil db=DbUtil.getInstance();
UserBean user=db.getUser(loginForm.getName());

if(user==null)
{
loginForm.setErrorMsg("name","no this user!");
}

else
{
if(user.validatePassword(loginForm.getPassword()))
{
session.setAttribute("loginUser",user);

%>
<jsp:forward page="loginSuccess.jsp"/>

<%
}
else
{
loginForm.setErrorMsg("password","password error!");
}
}

}

}

%>





<form action="login.jsp" method="post" >
<p>姓名
<input type="text" name="name" value="<%=loginForm.getName() %>">
<font color=red><%=loginForm.getErrorMsg("name")%></font>
</p>
<p>密码
<input type="password" name="password" value=<%=loginForm.getPassword() %>>
<font color=red><%=loginForm.getErrorMsg("password") %></font>

</p>
<p>
<input type="submit" name="s" value="登录">
</p>
</form>

</body>
</html>

...全文
473 52 打赏 收藏 转发到动态 举报
写回复
用AI写文章
52 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方2009 2011-11-09
  • 打赏
  • 举报
回复
一般都如下:
<%
request.setCharacterEncoding("GBK");
%>
如解决单个字符串乱码问题可以用:
new String(name.getBytes("ISO-8859-1","GBK"))
weider 2011-11-09
  • 打赏
  • 举报
回复
[Quote=引用 34 楼 weider 的回复:]
再问下面三者的异同和用法

<%@ page pageEncoding="UTF-8" %>






http-equiv="Content-Type" content="text/html; charset=utf-8"





<%
request.setCharacterEncoding("GBK");
response.setCharacterEnc……
[/Quote]

哎,众说纷纭
demonapple 2011-11-08
  • 打赏
  • 举报
回复
我用30楼的方法 把字符集设置为当前页面的字符集
yxy353245805 2011-11-08
  • 打赏
  • 举报
回复
<%@ page pageEncoding="UTF-8" %> 是页面的编码格式 防止页面乱码 你那个在web.xml里配置个过滤器:<filter>
<filter-name>Spring character encoding filter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Spring character encoding filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>最好放在web.xml的最上面
zhang527 2011-11-08
  • 打赏
  • 举报
回复
<%@ page pageEncoding="UTF-8" %> 好像是保证当前那个页面的编码吧!
学习!
weider 2011-11-07
  • 打赏
  • 举报
回复
出现乱码必须用过滤器来解决吗?麻烦
javaservepage 2011-11-07
  • 打赏
  • 举报
回复
六楼的有道理,是要进行乱码处理的,<%@ page pageEncoding="UTF-8" %>处理的对象不同
zenki520 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 33 楼 weider 的回复:]
引用 32 楼 strive20101101 的回复:
<%@ page pageEncoding="UTF-8" %>

这个只是设置页面编码,你要改的是请求编码,或者对请求的数据进行解码。


我是新手,还是不明白页面编码和请求编码有什么不同?
<%@ page pageEncoding="UTF-8" %>不设可以吗?
防止中文乱码的就对应没有标签吗?
[/Quote]

首先jsp表头要加入:<%@ page language="java" pageEncoding="utf-8" contentType="text/html;charset=utf-8"%>

然后哪里要把得到参数转换成中文,加入这句request.setCharacterEncoding("utf-8");

如果要把参数传给客户端,比如JS提示写在servlet里,加入这句:response.setCharacterEncoding("utf-8");

数据库字符也一定要一致,一般都用utf-8.
crz03128 2011-11-07
  • 打赏
  • 举报
回复
如果使用Tomcat的话,请设置iso-8859-1
colie_li 2011-11-07
  • 打赏
  • 举报
回复

public handleString (String s)
{
try{
byte bb[]=s.getString("iso-8859-1");
s=new String(bb);
}catch(Exception ee){}
return s
}




每处理一次表单的问题得时候就调用一次这个方法。
lfwlem 2011-11-07
  • 打赏
  • 举报
回复
我插入数据库时变成了问号,有没有知道怎么弄?
吴码 2011-11-07
  • 打赏
  • 举报
回复
[Quote=引用 25 楼 prince_wm 的回复:]

response.setContentType("text/html";charset=GB2312);//确保汉字信息的正确编码方式显示
request.setCharacterEncoding(gb2312);确保参数信息以汉字编码方式提取
[/Quote]
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page pageEncoding="UTF-8" %>
这二个应该是允许当前页面可以的编码格式
最直观的就是加上这二个 就可以使用汉字
我也一知半解 求解?
weider 2011-11-07
  • 打赏
  • 举报
回复
<%@ page contentType="text/html; charset=GB2312" %>
<%@ page pageEncoding="UTF-8" %>
<%
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK"):
%>
这三个东西都怎么讲搞?
weider 2011-11-07
  • 打赏
  • 举报
回复
我是不懂的,没人回答我的上面的问题
baijeay 2011-11-07
  • 打赏
  • 举报
回复
我怎么感觉用过滤器很方便呢,比在每个页面去设置编码格式方便很多呀
wuhuipengwhp 2011-11-06
  • 打赏
  • 举报
回复
出现乱码必须用过滤器来解决
package org.whp.struts.web;

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;

/**
* @author n-liang
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style. - Code Templates
*/
public class FilterEncoding implements Filter {
private FilterConfig filterConfig=null;
private String encoding=null;

/* (non-Javadoc)
* @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
*/
public void init(FilterConfig filterConfig) throws ServletException {
this.filterConfig=filterConfig;
this.encoding=filterConfig.getInitParameter("encoding");
}

/* (non-Javadoc)
* @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
*/
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
String encoding=this.encoding;
if(encoding!=null)
{
request.setCharacterEncoding(encoding);
}
chain.doFilter(request, response);
}

/* (non-Javadoc)
* @see javax.servlet.Filter#destroy()
*/
public void destroy() {
this.encoding=null;
this.filterConfig=null;

}

}



web.xml中配置
<filter>
<filter-name>setEncoding</filter-name>
<!-- 进行过滤器处理的类-->
<filter-class>org.whp.filter.FilterEncoding</filter-class>
<init-param>
<param-name>encoding</param-name>
<!-- 指定使用的编码-->
<param-value>utf-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>setEncoding</filter-name>
<!--有效路径-->
<url-pattern>/*</url-pattern>
</filter-mapping>
a3737500 2011-11-06
  • 打赏
  • 举报
回复
加入过滤器类

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
/**
* @des 过滤器
* @author tao
* @date 2011.07.16
*/
public class CommonFilter implements Filter {

public void destroy() {
// TODO Auto-generated method stub

}

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {
System.out.println("开始过滤");
HttpServletRequest request = (HttpServletRequest)arg0;
arg0.setCharacterEncoding("utf-8");
arg1.setCharacterEncoding("utf-8");

System.out.println("过滤完毕");
arg2.doFilter(arg0, arg1);

}

public void init(FilterConfig arg0) throws ServletException {
// TODO Auto-generated method stub

}

}

在web.xml里加入
<filter>
<filter-name>Filter</filter-name>
<filter-class>com.common.CommonFilter(过滤器类的路径)</filter-class>
</filter>
<filter-mapping>
<filter-name> Filter </filter-name>
<url-pattern> /*(都过滤哪些,/*表示都过滤) </url-pattern>
</filter-mapping>
weider 2011-11-06
  • 打赏
  • 举报
回复
再问下面三者的异同和用法

<%@ page pageEncoding="UTF-8" %>






http-equiv="Content-Type" content="text/html; charset=utf-8"





<%
request.setCharacterEncoding("GBK");
response.setCharacterEncoding("GBK"):
%>
weider 2011-11-02
  • 打赏
  • 举报
回复
[Quote=引用 32 楼 strive20101101 的回复:]
<%@ page pageEncoding="UTF-8" %>

这个只是设置页面编码,你要改的是请求编码,或者对请求的数据进行解码。
[/Quote]

我是新手,还是不明白页面编码和请求编码有什么不同?
<%@ page pageEncoding="UTF-8" %>不设可以吗?
防止中文乱码的就对应没有标签吗?
Strive20101101 2011-11-01
  • 打赏
  • 举报
回复
<%@ page pageEncoding="UTF-8" %>

这个只是设置页面编码,你要改的是请求编码,或者对请求的数据进行解码。
加载更多回复(31)
VeryIDE 是一套集成在线表单定制,投票定制,PK擂台,广告管理等多种应用的系统 并且供了丰富的函数与类,以及菜单定制等功能来让你扩展它. 更新日志: 修正 GBK版广告分类乱码的问题 修正 专题表单描述项错误的问题 修正 程序安装在子目录时,表单等应用地址错误 修正 Ajax窗口尺寸书写格式兼容性 修正 广告点击/统计等URL请求过程中会跳转一次的BUG [重要] 修正 试题系统编辑选项组时错误赋值的错误 修正 专题系统编辑页几处链接错误 修正 内置表单结果查看页几处错误 修正 专题系统新增模块在FF中鼠标事件出错的BUG 修正 专题系统中取色器定位的误差 更新 表单等Ajax应用的全面优化 更新 顶部快捷链接调整 更新 安装处理页面重写,优化了用户体验 更新 表单等列表标题链接为生成的页面地址 更新 优化滑出广告处理方式,提前展示时间 更新 优化对联广告处理方式,提前展示时间 更新 皮肤风格中部分字体显示更改为"微软雅黑" 更新 广告排行新增箭头图标指示 更新 广告系统数据库请求较大优化,减轻服务器负担 更新 页面多处增加 Tips 小提示功能 更新 全部应用风格皮肤增补预览图 更新 文档DTD判断文式,更为准确有效 新增 风格切换自动保存的功能 新增 表单结果页选项百分比显示颜色随机更换功能 新增 广告位"包裹标签",用于每条广告使用HTML标签包裹 新增 广告统计分析中对微软Bing(必应)搜索引擎的识别支持 新增 Flash图片轮换广告形式,支持多图自动切换 新增 广告主JS文件迷你(Mini)调用文件,去掉了不必要功能,减少文件大小 新增 专题系统增加幻灯片模块,用来展示多张图片轮换 新增 表单和试题应用新增子选项换行控制选项 新增 试题应用新增选项组随机排序显示功能 新增 veryide/dialog 目录,用来存放静态的HTML功能文件 新增 全部专题一键更新缓存功能 新增 表单系统新增 11套新皮肤风格 新增 veryide.core.php 用于快速引用 VI_ROOT 系统变量 新增 在所有表单提交部分进行基础验证功能,减少无效表单提交 新增 专题系统增加弹出窗口被阻止时的信息提示 附注 老版升级更新包请到官网下载
VeryIDE 是一套集成在线表单定制,投票定制,PK擂台,广告管理等多种应用的系统 并且供了丰富的函数与类,以及菜单定制等功能来让你扩展它. 更新日志: 修正 GBK版广告分类乱码的问题 修正 专题表单描述项错误的问题 修正 程序安装在子目录时,表单等应用地址错误 修正 Ajax窗口尺寸书写格式兼容性 修正 广告点击/统计等URL请求过程中会跳转一次的BUG [重要] 修正 试题系统编辑选项组时错误赋值的错误 修正 专题系统编辑页几处链接错误 修正 内置表单结果查看页几处错误 修正 专题系统新增模块在FF中鼠标事件出错的BUG 修正 专题系统中取色器定位的误差 更新 表单等Ajax应用的全面优化 更新 顶部快捷链接调整 更新 安装处理页面重写,优化了用户体验 更新 表单等列表标题链接为生成的页面地址 更新 优化滑出广告处理方式,提前展示时间 更新 优化对联广告处理方式,提前展示时间 更新 皮肤风格中部分字体显示更改为"微软雅黑" 更新 广告排行新增箭头图标指示 更新 广告系统数据库请求较大优化,减轻服务器负担 更新 页面多处增加 Tips 小提示功能 更新 全部应用风格皮肤增补预览图 更新 文档DTD判断文式,更为准确有效 新增 风格切换自动保存的功能 新增 表单结果页选项百分比显示颜色随机更换功能 新增 广告位"包裹标签",用于每条广告使用HTML标签包裹 新增 广告统计分析中对微软Bing(必应)搜索引擎的识别支持 新增 Flash图片轮换广告形式,支持多图自动切换 新增 广告主JS文件迷你(Mini)调用文件,去掉了不必要功能,减少文件大小 新增 专题系统增加幻灯片模块,用来展示多张图片轮换 新增 表单和试题应用新增子选项换行控制选项 新增 试题应用新增选项组随机排序显示功能 新增 veryide/dialog 目录,用来存放静态的HTML功能文件 新增 全部专题一键更新缓存功能 新增 表单系统新增 11套新皮肤风格 新增 veryide.core.php 用于快速引用 VI_ROOT 系统变量 新增 在所有表单提交部分进行基础验证功能,减少无效表单提交 新增 专题系统增加弹出窗口被阻止时的信息提示 附注 老版升级更新包请到官网下载
dotNETCMSv1.0sp5源码 dotNETCMSv1.0sp5免费版本是一款具有强大功能的基于ASP.NET+MSSQL构架的内容管理软件,国内领先的第一款开源的、集成web2.0元素的、模块化的CMS建站系统。 dotNETCMSv1.0sp5免费版功能: SQL数据库+内容管理+发布管理+会员中心+插件管理(广告系统+采集系统+问卷调查+友情链接+统计系统+整合接口+文件对比+自定义字段+自定义表单+数据库维护+Ftp同步) 程序特点: 1.全部生成静态页面/动态页面 2.完全人性化的操作方式 3.系统内置标签和自由标签管理,可以生成任何页面需要的任何元素和样式 4.集成了新闻采集系统 5.会员管理系统,并与流行论坛高度整合 6.自由化的权限分配管理 7.全个性化模板生成,模板由用户自由定义 8.投稿,投票,广告管理 9.面向高级技术人员的自由化SQL扩展标签 10.自动生成图片水印 11.后台操作自由灵活 12.Ftp同步 13.其他一些功能.. 在dotNetcms v1.0 sp4 100331版本基础上更新列表: 1.并发操作时,产生的一系列报错问题已修正。 2.RSS标签问题 3.源代码中存在错别字处理 4.图片头条调用存在问题 5.关于程序代码中,指定dbo.表名的情况在虚拟空间里面出现此报错。 6.关于评论表单在firefox下变形,匿名不起作用 7.投稿问题,会员投稿新增可以自行选择后台栏目 8.Flv视频播放在使用带端口的域名时播放器路径没有端口不能播放 9.安装文件时版权链接不是风讯的网址 10.子类列表标签的子栏目样式名称不应该在其他标签类型显示 11.问卷调查提交的信息,在后台只能看到第一页,点击下一页,没有显示的信息。 12.生成html页面被插入的js和link的位置影响了W3C的认证。 13.关于编辑,作者,关键字,点击进入搜索页,搜索框出现乱码 14.修改后台管理目录manage为其他时影响后台功能的使用 15.会员上传漏洞重大安全问题 16.dotNet的自字义表单功能单一 17.总站导航标签table方式输出无效 18.火狐下面无法调用FLV播放 19.统计系统防ip刷新设置功能无效 20.采集问题续 21.发布的最新dotNet版本中少文件 22.系统生成的baidu.xml文件格式不正确,导致显示出错。 23.移动新闻和复制新闻时,应该模板是继承当前栏目对应的模板,而不是以前栏目的模板。 24.彻底删除栏目 25.关于轮换标签 26.关于新闻标题只有一位的情况处理 27.关于会员电话号码验证错误问题处理 28.火狐浏览器下安装问题 29.编辑器问题:当光标是定位在文章的下一行 图片添加的时候 就一下子到了最上边 30.新闻设置图片头条设置不成功 31.新增ftp同步(即远程发布功能)。 32.自定义表单回复提供了前台样式标签调用,并支持分页。 33.子类标签新增了栏目中文名称样式调用,更灵活更方便实现各类子类调用。
dotNETCMSv1.0sp5免费版本是一款具有强大功能的基于ASP.NET+MSSQL构架的内容管理软件,国内领先的第一款开源的、集成web2.0元素的、模块化的CMS建站系统。 dotNETCMSv1.0sp5功能: SQL数据库+内容管理+发布管理+会员中心+插件管理(广告系统+采集系统+问卷调查+友情链接+统计系统+整合接口+文件对比+自定义字段+自定义表单+数据库维护+Ftp同步) 安装序列号:3C3MY-C9G9C-ES19G-G31M9-EGWE5 程序特点: 1.全部生成静态页面/动态页面 2.完全人性化的操作方式 3.系统内置标签和自由标签管理,可以生成任何页面需要的任何元素和样式 4.集成了新闻采集系统 5.会员管理系统,并与流行论坛高度整合 6.自由化的权限分配管理 7.全个性化模板生成,模板由用户自由定义 8.投稿,投票,广告管理 9.面向高级技术人员的自由化SQL扩展标签 10.自动生成图片水印 11.后台操作自由灵活 12.Ftp同步 13.其他一些功能.. 在dotNetcms v1.0 sp4 100331版本基础上更新列表: 1.并发操作时,产生的一系列报错问题已修正。 2.RSS标签问题 3.源代码中存在错别字处理 4.图片头条调用存在问题 5.关于程序代码中,指定dbo.表名的情况在虚拟空间里面出现此报错。 6.关于评论表单在firefox下变形,匿名不起作用 7.投稿问题,会员投稿新增可以自行选择后台栏目 8.Flv视频播放在使用带端口的域名时播放器路径没有端口不能播放 9.安装文件时版权链接不是风讯的网址 10.子类列表标签的子栏目样式名称不应该在其他标签类型显示 11.问卷调查提交的信息,在后台只能看到第一页,点击下一页,没有显示的信息。 12.生成html页面被插入的js和link的位置影响了W3C的认证。 13.关于编辑,作者,关键字,点击进入搜索页,搜索框出现乱码 14.修改后台管理目录manage为其他时影响后台功能的使用 15.会员上传漏洞重大安全问题 16.dotNet的自字义表单功能单一 17.总站导航标签table方式输出无效 18.火狐下面无法调用FLV播放 19.统计系统防ip刷新设置功能无效 20.采集问题续 21.发布的最新dotNet版本中少文件 22.系统生成的baidu.xml文件格式不正确,导致显示出错。 23.移动新闻和复制新闻时,应该模板是继承当前栏目对应的模板,而不是以前栏目的模板。 24.彻底删除栏目 25.关于轮换标签 26.关于新闻标题只有一位的情况处理 27.关于会员电话号码验证错误问题处理 28.火狐浏览器下安装问题 29.编辑器问题:当光标是定位在文章的下一行 图片添加的时候 就一下子到了最上边 30.新闻设置图片头条设置不成功 31.新增ftp同步(即远程发布功能)。 32.自定义表单回复提供了前台样式标签调用,并支持分页。 33.子类标签新增了栏目中文名称样式调用,更灵活更方便实现各类子类调用。
VeryIDE Bee是一套开源的Web应用平台,面向地方社区和垂直行业网站,为其提供互动营销支持。 VeryIDE Bee 2.3 GBK 版本更新日志: 2016-06-26 更新远程附件增加被动上传模式(PASV);更新投票提交页面的IP数据安全过滤;更新管理员列表页增加论坛关联信息输出;更新增加了分类信息中电话号码和所在地字段长度;更新将城市名称变更至全局设置,取消模块单独设置;更新分类信息可以将商业推广投放至大类下的全部子类;更新分类信息可以单独设置前台面包屑名称;更新分类信息可以细化到每个用户组的信息发布量限制;更新分类信息分类项可以添加外部链接(无法在此发布信息);更新为专题通用模板增加了全局评论框,用于用户评论发布;修正Win平台下反斜线路径可能导致的安装错误;修正Win平台下导出的CSV文件可能乱码的问题;修正专题在多页面多区块移动时无法正常定位的问题;修正表单联动选项不能正常处理半角括号的问题;修正表单和试题中的随机选项组和子选项无效的问题;修正广告位添加时出错可能导致的表单验证错误;修正投票项目详细页描述字段不能正常显示的问题;修正信纸在PHP5.5中因部分内容没有ICONV导致空白输出;修正活动前台页没有正常按排序显示的问题;修正专题评论在非Win环境下提交时可能导致无法解析的问题;修正广告编辑页共享广告无法操作的问题;修正广告位修改时,无法正常保存配置的问题;修正试题没有对必选项进行判断的问题;优化专题模板和模块变量的提取效率和准确性;优化因邮件配置为空可能导致的模块打不开错误;优化将缓存和模板编译目录进行了合并,将静态文件合并;优化投票模块索引性能,增加代理IP字段输出;优化轮换广告位展示细节,增加数字控件;优化文件特征对比工具,非GBK编码特征更准确;

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧