「java过滤中文乱码」java解决中文乱码
本篇文章给大家谈谈java过滤中文乱码,以及java解决中文乱码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java filter 过滤器中文乱码 怎么解决啊?
1、首先编写一个Java类的filter代码。操作步骤:
(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=""
xmlns:xsi=""
xsi:schemaLocation="
"
display-name/display-name
filter !-- 控制编码 --
filter-nameEncodingFilter/filter-name
filter-classcom.Encoding/filter-class
init-param !-- 初始化参数 --
param-nameEncoding/param-name
param-valueGB2312/param-value
/init-param
/filter
filter-mapping
filter-nameEncodingFilter/filter-name
url-pattern/*/url-pattern
/filter-mapping
/web-app
JAVA读写文件,如何避免中文乱码
1、你要将所有的文件的编码都设置成UTF-8,还有,你的MyEclipse或者Eclipse应该配置jsp还有java文件还有项目都设置为UTF-8.
2、eclipse 中使用模板新建 JSP,xhtml等 文件时,默认的编码为:ISO-8859-1。 ISO-8859-1 编码对于中文的显示是不支持的,如果要支持简体中文,则编码方式应为 GBK 或者 GB2312 或者 UTF-8(推荐) 等。右键菜单栏window -- preferences -- 在type filter text中输入jsp; -- 选择下面的jsp - 选择creating files组中的encoding 为UTF-8编码就可以了
如果要使新建立工程、java文件直接使UTF-8则需要做以下工作:
1、windows-Preferences...打开"首选项"对话框,左侧导航树,导航到general-Workspace,右侧 Text file encoding,选择Other,改变为UTF-8,以后新建立工程其属性对话框中的Text file encoding即为UTF-8。
2、windows-Preferences...打开"首选项"对话框,左侧导航树,导航到general-Content Types,右侧Context Types树,点开Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8。其他java应用开发相关的文件 如:properties、XML等已经由Eclipse缺省指定,分别为ISO8859-1,UTF-8,如开发中确需改变编码格式则可以在此指定。
在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方法关闭,否则会一直处于打开状态,直至程序停止,增加系统负担。
java过滤中文乱码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java解决中文乱码、java过滤中文乱码的信息别忘了在本站进行查找喔。