java过滤乱码
1. java web 乱码过滤器 filter 有什么作用
注意问题:在学习用selvert的过滤器filter处理中文乱码时,在filter配置初始化时用了utf-8处理中文版乱码,而在提交的jsp页面中却权用了gbk。虽然两种都可以出来中文乱码,但是却造成了处理乱码的格式不一致。所以编译出错。
2. Java乱码问题。我配置一个Filter,但是搜索却失效了。
web.xml里面配置的<param-value>是utf-8么?
还有doFilter里面
response.setContentType("text/html;charset=" + encoding);
request.setCharacterEncoding(encoding);
俩都内写容上
3. 怎么使用过滤器解决中文乱码
首先有web.xml中配置
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>net.tom.servlet.filter.EncodingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
//net.tom.servlet.filter.EncodingFilter是其包和类所在的地址
我给你的DEMO是统一设为utf-8
你可以改一下就可以了
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;
/********************
* 过滤编码.用于把编码统一为:utf-8
* @author jiangqh
*
*/
public class EncodingFilter implements Filter {
public EncodingFilter() {
}
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 {
}
}
4. Java乱码问题 为什么写了过滤器都没有用必须得一个字段一个字段的设置 数据库里面的是iso-8859-1类型的
你数复据库字段的类型必须是中文制类型,比如是UTF-8的
就像,你把一个中文字符 存入iso-8859-1的字段,字段根本就不支持中文,能不乱码吗,所以先要把数据库的类型改成中文
过滤器的作用是把页面和后台java程序这个部分的字符转换,不管数据库的
如果是后台java已经转换完了,但是插入数据库是出现问题,如果是mysql数据库
jdbc:mysql://211.151.32.151:3306/zipcard?characterEncoding=UTF-8
加上?characterEncoding=UTF-8就可以了
5. java中处理中文乱码所用的方法
过滤器对于用url方式的参数是没有办法过滤的
所以在以url(或表单提交方式是get的数据)传值的时专候应该属硬性转码:
String para =new String(str.getByte("iso-8859-1"),"UTF-8");
6. 在java中怎样处理中文乱码的问题(有几种处理方式)
读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。
可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。
BufferedReader bre = null;
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此时获取到的bre就是整个文件的缓存流
while ((str = bre.readLine())!= null) // 判断最后一行不存在,为空结束循环
{
System.out.println(str);//原样输出读到的内容
};
备注: 流用完之后必须close掉,如上面的就应该是:bre.close(),否则bre流会一直存在,直到程序运行结束。
可以通过“FileOutputStream”创建文件实例,之后过“OutputStreamWriter”流的形式进行存储,举例:
OutputStreamWriter pw = null;//定义一个流
pw = new OutputStreamWriter(new FileOutputStream(“D:/test.txt”),"GBK");//确认流的输出文件和编码格式,此过程创建了“test.txt”实例
pw.write("我是要写入到记事本文件的内容");//将要写入文件的内容,可以多次write
pw.close();//关闭流
备注:文件流用完之后必须及时通过close方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
7. [Java]如何解决乱码问题
乱码的话来,分为几个位置的源乱码。
一、是JSP页面乱码问题,
解决方式:<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
二、后台向前端传输字符串的的乱码
解决方式: response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
三、Ajax异步传参时的乱码问题
解决方法:contentType:"application/x-www-form-urlencoded; charset=utf-8",
四、myEclips或Eclips打开文件时乱码
解决方法:右键该文件-porperties-把该文件调为UTF-8的格式
纯手写,请给采纳
8. 关于java过滤器解决中文乱码的
因为你遗漏袭了重要的一步。正确的方法如下:
if(encoding!=null){
//设置request字符编码
request.setCharacterEncoding(encoding);
//设置response字符编码
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//传递给下一个过滤器
chain.doFilter(request,response);
9. java filter 过滤器中文乱码 怎么解决啊
1、首先编写一个Java类的代码。操作步骤:
(1)在myeclipse中新建一个java类,
(2)单击“Add”按钮,在弹出来的对话框中“选择接口”文本框中输入Filter,
并选择匹配好的类型javax.servlet
(3)单击“OK”按钮返回"New Java Class"对话,然后单击“Finish”按钮,就可以看到创建的过滤器框架:
过滤器类:Encoding.java,代码如下:
package com;
import java.io.IOException;
import javax.servlet.*;
public class Encoding implements Filter {
protected String encoding=null;
protected FilterConfig config;
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
if(request.getCharacterEncoding()==null){
//得倒指定的编码
String encode=getEncoding();
if(encode!=null){
//设置request的编码
request.setCharacterEncoding(encode);
response.setCharacterEncoding(encode);
}
}
chain.doFilter(request, response);
}
public void init(FilterConfig filterConfig) throws ServletException {
this.config=filterConfig; //得到web.xml中的配置编码
this.encoding=filterConfig.getInitParameter("Encoding");
}
protected String getEncoding(){
return encoding;
}
}
2、在web.xml文件写入以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></display-name>
<filter> <!-- 控制编码 -->
<filter-name>EncodingFilter</filter-name>
<filter-class>com.Encoding</filter-class>
<init-param> <!-- 初始化参数 -->
<param-name>Encoding</param-name>
<param-value>GB2312</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
10. java 字符串中乱码过滤
new String(str.getBytes(),"GBK");
用这方法,把乱码正确显示。当然编码要自己设