「java过滤中文乱码」java解决中文乱码

博主:adminadmin 2023-01-12 17:33:06 289

本篇文章给大家谈谈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过滤中文乱码的信息别忘了在本站进行查找喔。