由于数据库编码为UTF-8,所以为了能显示所以页面也只能用UTF-8的编码,如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("GB2312"))。
然后我把它放到表单的隐藏域中 <input type="hidden" name="sjzt" value=<%=sjzt%>>,再传递给servlet时,在servlet就显示成乱码了。
求高人指点啊。
该如何解决?谢谢!!!!!
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("GB2312"))。
然后我把它放到表单的隐藏域中 <input type="hidden" name="sjzt" value=<%=sjzt%>>,再传递给servlet时,在servlet就显示成乱码了。
求高人指点啊。
该如何解决?谢谢!!!!!
解决方案 »
- 还是select与javascript的问题
- ?java.sql.SQLException: Column count doesn't match value count at row
- Ajax Struts1.3 用户名验证
- 一段JS代码问题.
- 注册会员中加入了<form>点提交就没有反应了
- hibernate native 问题
- 求O'Reilly 的Java Servlet Programming, 2nd Edition英文版电子书
- jspsmartupload组件的一个bug
- 关于jsp页面刷新的问题
- 请问能不能使用jsp在mysql数据库中创建一个新的数据库?
- java发送邮件,如何使用内部邮件服务器
- 关于Tomcat 下的程序 移植到 Resin的问题 急!!!!!!!在线等!!!!!!
我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("utf-8"))。
response.setCharacterEncoding("utf-8"))
都写上 要不就全改成 gbk 页面的也得改 统一
字符集要是用 就全部统一. 或者你改变 这个jsp页面的也可以 换成gb2312
如果一定要是用就必须现转码。最好设置个过滤器,现在都是使用过滤器来处理的
1、所有页面都用UTF-8。
2、写过滤器,设置request.setCharacterEncoding("UTF-8")。
3、javascript脚本里用encodeURI(str),在jsp里接收的时候不用decode。
4、在jsp里用java.net.URLEncoder.encode(str, "UTF-8")编码传参数,接收页面用java.net.URLDecoder.decode(request.getParameter("str"),"UTF-8")。
5、最容易忽略的是使用"":value=" <%=paraFiles%>",一定要有引号。 例子源码:http://download.csdn.net/source/965319
post提交就弄个过滤器啊
网上copy个放项目里web.xml下一配置就不用管了多方便
改成 request.setCharacterEncoding("utf-8");
如果还是不行,则在接受参数的Servlet中,对该参数进行一下转换如:
String param = request.getParameter("content");
param = String(param.getBytes("iso-8859-1"),"UTF-8");
这样再继续使用经过处理后的param,就应该可以了。
然后在Servlet端设置编码:request.setCharacterEncoding("GBK");
web.xml里加入
<filter>
<filter-name>CharacterEncoding</filter-name>
<filter-class>
filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>gb2312</param-value>
</init-param>
<init-param>
<param-name>ignore</param-name>
<param-value>false</param-value>
</init-param>
</filter> <filter-mapping>
<filter-name>CharacterEncoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>package filter;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 jacky.zhu
*
* @createDate 2008-11-3
*
*/
public class CharacterEncodingFilter implements Filter {
protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; public void destroy() {
this.encoding = null;
this.filterConfig = 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");
String value = filterConfig.getInitParameter("ignore");
if (value == null) {
this.ignore = true;
} else if (value.equalsIgnoreCase("true")) {
this.ignore = true;
} else {
this.ignore = false;
}
} /*
* (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 {
if (!ignore) {
if (this.encoding != null) {
request.setCharacterEncoding(this.encoding);
}
}
chain.doFilter(request, response);
} protected String selectEncoding(ServletRequest request) {
return (this.encoding);
}
}
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
我首先从servlet接收一个中文参数,可以正常显示。(request.setCharacterEncoding("UTF-8"))。试试............