又是乱码

xuexijava 2010-03-29 01:58:20
最近做了个项目
使用了过滤器数据库和页面编码都是UTF-8,在本机上跑的时候表单不出现乱码
现在传到空间里跑的时候表单提交乱码。。。。
何解?
...全文
127 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuexijava 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 xiaoxi29 的回复:]
修改服务器编码,不知道具体情况啊!但我就大胆猜想一下,如果是post请求的话,只要保证jsp servlet 数据库都是同样的编码就OK了,但如是get请求的话就还需要修改服务器编码了,tomcat中式这样修改的:找到tomcat/conf 文件夹下的server.xml 文件,打开,找到下面这一行

<Connector port="8080"
maxThreads="150"
conn……
[/Quote]
这个我设置过了还是乱码,不过还是谢谢大家的回答。。。
结贴
smi_ling 2010-03-29
  • 打赏
  • 举报
回复
接分了!
xiaoxi29 2010-03-29
  • 打赏
  • 举报
回复
修改服务器编码,不知道具体情况啊!但我就大胆猜想一下,如果是post请求的话,只要保证jsp servlet 数据库都是同样的编码就OK了,但如是get请求的话就还需要修改服务器编码了,tomcat中式这样修改的:找到tomcat/conf 文件夹下的server.xml 文件,打开,找到下面这一行

<Connector port="8080"
maxThreads="150"
connectionTimeout="20000"
redirectPort="8443" />

加上一个属性 URIEncoding="UTF-8"

<Connector port="8080"
maxThreads="150"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="UTF-8" />

不是到是不是这个问题,试试看吧,哈
xuexijava 2010-03-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 privatemiao 的回复:]
为什么总是看到有人特地用过滤器来解决乱码的问题。
在 jsp servlet 数据库 都保证是 utf-8 的就行了
[/Quote]
现在是统一了还乱
有点晕
谁遇到过这种情况
另说明下
在导入SQL文件后,更改数据库编码为UTF_bin
这个和页面的UTF-8难道不对应吗?
环境是Tomcat6.0+Mysql5.0
privatemiao 2010-03-29
  • 打赏
  • 举报
回复
为什么总是看到有人特地用过滤器来解决乱码的问题。
在 jsp servlet 数据库 都保证是 utf-8 的就行了
sl514 2010-03-29
  • 打赏
  • 举报
回复
空间服务器的编码呢
xuexijava 2010-03-29
  • 打赏
  • 举报
回复
longtenggdf 2010-03-29
  • 打赏
  • 举报
回复
地球人还没有彻底解决乱码问题吗?
xuexijava 2010-03-29
  • 打赏
  • 举报
回复
数据库编码用的是UTF8
每个Jsp页面都用了
<%@ page language="java" import="java.util.*,gg.com.domain.*;" pageEncoding="UTF-8"%>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
xuexijava 2010-03-29
  • 打赏
  • 举报
回复
web.xml代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<filter>
<filter-name>SetCharsetEncodingFilter</filter-name>
<filter-class>gg.com.util.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter>
<filter-name>CloseSessionFilter</filter-name>
<filter-class>gg.com.util.CloseSessionFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>SetCharsetEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>CloseSessionFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>3</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>3</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>

xuexijava 2010-03-29
  • 打赏
  • 举报
回复
贴代码:
过滤器代码:
public class SetCharacterEncodingFilter implements Filter {

protected String encoding = null;

protected FilterConfig filterConfig = null;

protected boolean ignore = true;

public void destroy() {

this.encoding = null;
this.filterConfig = null;


}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain)
throws IOException, ServletException {

if (ignore || (request.getCharacterEncoding() == null)) {
String encoding = selectEncoding(request);
if (encoding != null)
request.setCharacterEncoding(encoding);
}

chain.doFilter(request, response);

}

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 if (value.equalsIgnoreCase("yes"))
this.ignore = true;
else
this.ignore = false;

}

protected String selectEncoding(ServletRequest request) {

return (this.encoding);

}


}
xuhesheng 2010-03-29
  • 打赏
  • 举报
回复
给服务器也加上编码
你在自己机子上试验的时候肯定没使用中文
Ajax也肯定检测不出来中文同名的吧
star19860411 2010-03-29
  • 打赏
  • 举报
回复
空间?什么空间啊?

81,122

社区成员

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

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