导航:首页 > 净水问答 > utf8过滤器

utf8过滤器

发布时间:2022-03-28 20:55:23

Ⅰ javaee怎么设置utf-8

第一原则:所有编码的地方,统一设为UTF-8,这样繁体,简体,日文,韩文。。。通吃了)

一、下载中文文件名文件问题

a)Tomcat:修改Tomcat安装目录下conf/server.xml文件,加上URIEncoding="UTF-8"/ <Connector port="8080" .... URIEncoding="UTF-8"/> b)JBOSS :安装目录下 server/default/deploy/jbossweb-tomcat55.sar/server.xml <Connector port="8080" .... URIEncoding="UTF-8"/>

二、表单get/post传递中文乱码
我们用一个过滤器,将所有编码转换为UTF-8
找到Tomcat安装目录下\webapps\jsp-examples\WEB-INF\classes\filters下RequestDumperFilter.java,SetCharacterEncodingFilter.java两个文件。加入到你的项目,修改包路径.
在web.xml文件中部署这个过滤器

<filter> <filter-name>Set Character Encoding</filter-name> <filter-class>SetCharacterEncodingFilter.java 的类路径</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>

三、jsp页面模版
所有jsp页面使用如下模版

<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv=content-type content="text/html; charset=UTF-8"> <title> </title> </head> <body> </body> </html>

四、数据库以Unicode编码存储数据
MySQL数据库设置
a)windows系统: windows下安装mysql时,编码选择utf-8,查看mysql安装目录下my,ini文件,在[mysqld]段下面加入default-character-set=utf8
b)linux系统:/etc/mysql/下my.cnf文件,在[mysqld]段下面加入default-character-set=utf8

五、JDBC连接参数
注意:xml文件中,"&"是不能直接使用的, & 代替 &
Mysql数据库jdbc 连接参数
jdbc:mysql://localhost/kms useUnicode=true&characterEncoding=utf-8
sql server数据库jdbc连接参数(强烈建议使用JTDS驱动,比微软官方驱动更好)
jdbc:jtds:sqlserver://localhost:1433/kms;TDS=8.0;charset=utf-8;SendStringParameterAsUnicode=true

Ⅱ 关于java过滤器解决中文乱码的

因为你袭遗漏了重要的一步。正确的方法如下:

if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//传递给下一个过滤器
chain.doFilter(request,response);

Ⅲ 如何使用spring的字符编码过滤器

有过滤器还乱,我猜猜,
1请求方式用post呗
2页面编码utf-8

Ⅳ utf-8中文显示乱码。

不太明白!你说清楚点`
你在自己本地建站就没问题,你在本地用的是asp么?
你用ASP编的网页不可以。那你是在远程服务器写的吗?。

做网页尽量使用统一的编码`不要几个一个网页使用UTF8
一个使用GB2312.这样也会造成乱码。

Ⅳ Struts中用了过滤器还是有乱码问题

1.首先,设置数据库支持中文gb2312/gbk。
具体方法:
打开mySQL文件夹,修改my.ini配置文件。
[client]
port=3306

default-character-set=gb2312
以及
[mysqld]下的
default-character-set=gb2312
修改,保存,重启。若设为System服务,可以在控制面板-管理工具-服务中找到mySQL服务,重启。
2.保证Web项目所在容器支持中文,个人认为是将Tomcat改为支持gb2312.
打开文件夹,找到server.xml修改
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
reloadable="true" redirectPort="8443" reloadable="true" URIEncoding="gb2312" />
rereloadable="true"设置热启动,URIEncoding="gb2312"设置字符
3.前台页面
<%@ page language="java" pageEncoding="gb2312"%>
4.添加过滤器
本人将前三种都修改,重新启动,数据库的插入依然显示???,之后使用Filter类成功。
据称过滤类比较稳定,推荐使用。
具体过程,网上找的方法
package com.strutsLogin.util; 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 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);
}
// Pass control on to the next filter
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);
}
}//EOC
该代码来自于www.javawebstudio.com,特此感谢!
然后我们在web.xml中加一些配置,就可以了,配置如下:
<filter>
<filter-name>Set Character Encoding</filter-name>
<filter-class>javawebstudio.struts_db.SetCharacterEncodingFilter</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>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>Set Character Encoding</filter-name>
<servlet-name>action</servlet-name>
</filter-mapping>
放在web.xml的合适位置。一般在最后,<jsp-config>标签之前(如果有的话)放在<servlet>之前,否则报错
经过以上步骤,JSP和mysql的中文显示及插入就都正常了。在STRUTS中也正常。

Ⅵ JSP Filter过滤器设置编码问题。。。

importjava.io.IOException;

importjavax.servlet.Filter;
importjavax.servlet.FilterChain;
importjavax.servlet.FilterConfig;
importjavax.servlet.ServletException;
importjavax.servlet.ServletRequest;
importjavax.servlet.ServletResponse;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;

importorg.omg.CORBA.Request;

{

@Override
publicvoiddestroy(){
//TODOAuto-generatedmethodstub

}

@Override
publicvoiddoFilter(ServletRequestreq,ServletResponseres,
FilterChainchain)throwsIOException,ServletException{
//TODOAuto-generatedmethodstub
System.out.println("字符编码过滤器");

HttpServletRequestrequest=(HttpServletRequest)req;
HttpServletResponseresponse=(HttpServletResponse)res;

request.setCharacterEncoding("UTF-8");
chain.doFilter(request,response);
}

@Override
publicvoidinit(FilterConfigconfig)throwsServletException{
//TODOAuto-generatedmethodstub
}

}

以上就是Filter过滤器的代码, 都设置成UTF-8 支持中文, 写好了以上代码之后,要在web.xml文件中进行配置。

Ⅶ 对付jsp乱码的乱码过滤器要怎么添加啊

正常页面间传输 把编码统一 utf-8 或 gbk 其实不会出现乱码问题。
如果在数据库提取数据传给页面,可能会出现乱码问题。这时可在struts中设置编码。
或加一个过滤器。过滤器具体操作如下:
1:在你写JAVA类的地方新建个 类。filter 内容:
package com.yourcompany.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;

public class filter 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 {
}

}
2:在web.xml添加 映射文件(注:<filter-class>写你过滤器类的路径</filter-class>)
<filter>
<filter-name>fileter</filter-name>
<filter-class>com.yourcompany.filter.filter</filter-class>
</filter>
<filter-mapping>
<filter-name>fileter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

3.如还有不明白的 HI我

Ⅷ eclipse web项目的编码过滤器,统一设置成UTF-8

过滤器中的内容:
private static final long serialVersionUID =85757L;

private String encoding;

public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain arg2) throws IOException, ServletException {

arg0.setCharacterEncoding(encoding);

arg1.setCharacterEncoding(encoding);

arg2.doFilter(arg0, arg1);

}

public void init(FilterConfig arg0) throws ServletException {

encoding=arg0.getInitParameter("encoding");

}

web.xml文件中 添加过滤器
<filter>
<filter-name>类名</filter-name>
<filter-class>类名全路径(包括包名)</filter-class>
<init-param><!--参数 与过滤器中的encoding对应 encoding的实际值是utf-8-->
<param-name>encoding</param-name>
<param-value>utf-8</param-value>
</init-param>
</filter>

Ⅸ Filter中文过滤器有问题,诸位大侠帮我看看啊!

补充2:有两种方式可以把utf8设置到字段级别。
1.工具方式,请使用mysql官方工具mysql query browser,然后在表的edit table中的column details,直接对字段进行设置。
2.命令行方式,ALTER TABLE tablename MODIFY COLUMN columnname varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL;对于每个可能会出现乱码的字段都要设置。

------------
补充:
他对已有的数据无效,只对设置utf8后的数据有效。另外,请楼主注意:utf8要设置到字段级别,而不仅仅是表级别。

------------------------------------
不需要这样处理。对于jsp+mysql的多语言问题,可以用以下解决方案,可以对任意语言都适用。
1.在数据库链接字符串上要形如:jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=UTF-8(注意要加characterEncoding=UTF-8)
2.在数据库表和相应的字段要的charset要选择utf8(字段也要加)
3.在servlet的java中去参数时要加上:httpServletRequest.setCharacterEncoding("UTF-8");
4.jsp页面要加上字符集:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
这样就可以处理所有语言的乱码问题。

Ⅹ 如何配置Filter过滤器处理JSP中文乱码

注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文乱码,而在提交的jsp页面中却用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
解决方法:所有地方都用utf-8或gbk

//过滤器类
CharactorFilter.jsp
package cn.com.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;

public class CharactorFilter implements Filter { //继承Filter类
//字符编码
String encoding=null;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
}
//传递给下一个过滤器
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
//获取初始化参数
encoding=filterConfig.getInitParameter("encoding");
}
public void destroy() {
// TODO Auto-generated method stub
encoding=null;
}
}

web.xml
<filter> <!--注意这里是filter,不要配置成servlet-->
<filter-name>CharactorFilter</filter-name> <!--过滤器名称-->
<filter-class>cn.com.Filter.CharactorFilter</filter-class> <!--过滤器的完整类名-->
<init-param> <!--初始化参数-->
<param-name>encoding</param-name> <!--参数名称-->
<param-value>utf-8</param-value> <!--参数值-->
</init-param>
</filter>
<filter-mapping> <!--过滤器映射-->
<filter-name>CharactorFilter</filter-name><!--过滤器名称-->
<url-pattern>/*</url-pattern><!--URL映射,给所有页面处理乱码-->
</filter-mapping>

阅读全文

与utf8过滤器相关的资料

热点内容
西安污水处理费征收所 浏览:538
离子交换层析柱拖尾 浏览:397
大化哪个批发部卖娃哈哈纯净水 浏览:613
离子交换树脂主要用于 浏览:477
过滤后烧开有漂浮物 浏览:622
市政雨污水管材一般用什么 浏览:577
老捷达汽油滤芯不换有什么影响 浏览:278
空气净化器该不该买怎么选择 浏览:341
f30机油滤芯多少钱 浏览:713
2015水处理政策 浏览:673
小米净化器滤芯什么时候更换 浏览:147
污水还会对什么造成危害 浏览:406
奔驰的空调滤芯在哪里换 浏览:482
萃取和蒸馏的思考题答案 浏览:969
环氧树脂生产流程图 浏览:405
江铃域虎7空调滤芯是什么形状 浏览:664
餐厅污水处理设备百科 浏览:653
医院污水自己可以产生氯吗 浏览:33
反渗透膜压降什么意思 浏览:538
油墨过滤芯多少钱 浏览:999