導航:首頁 > 凈水問答 > filter過濾所有亂碼

filter過濾所有亂碼

發布時間:2021-03-31 10:27:10

Ⅰ 如何配置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>

Ⅱ scala:列表(List)經過過濾操作後(filter),列印出來是亂碼(@+數字),toString也沒作用

我看你用的是array吧
貼代碼

Ⅲ 關於java過濾器解決中文亂碼的

因為你襲遺漏了重要的一步。正確的方法如下:

if(encoding!=null){
//設置request字元編碼
request.setCharacterEncoding(encoding);
//設置response字元編碼
response.setContentType("text/html;charset="+encoding);
response.setCharacterEncoding(encoding);
}
//傳遞給下一個過濾器
chain.doFilter(request,response);

Ⅳ 如何使用過濾器解決jsp亂碼

打開web項目,在src中新建一個類,規范一下編程習慣我們就把它放到一個包中去,項目右鍵新建「class」,包名填寫例如「com.test.struts.filters」(習慣是域名反轉),文件名首字母大寫,例如「SetCharacterEncoding」。下面是類中的代碼,實際上就是實現了Filter介面,重寫了一下doFilter函數。

packagecom.test.hibernate.filters;

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;{


/*(non-Javadoc)
*@seecom.sun.net.httpserver.Filter#doFilter(com.sun.net.httpserver.HttpExchange,com.sun.net.httpserver.Filter.Chain)
*/
publicvoiddoFilter(ServletRequestsrequest,ServletResponsesresponse,
FilterChainchain)throwsIOException,ServletException{
HttpServletRequestrequest=(HttpServletRequest)srequest;
HttpServletResponseresponse=(HttpServletResponse)sresponse;

//注意這里請求和響應都強制轉化了一下
request.setCharacterEncoding("UTF-8"); //設置請求編碼「UTF-8」比較通用
response.setCharacterEncoding("UTF-8"); //設置相應編碼
chain.doFilter(srequest,sresponse);//轉發請求
}

publicvoiddestroy(){
//TODOAuto-generatedmethodstub

}

publicvoidinit(FilterConfigarg0)throwsServletException{
//TODOAuto-generatedmethodstub

}

}

web配置文件配置filter文件,打開web.xml文件,在<web-app></web-app>之間加入如下配置,<filter></filter>是設置類路徑的,<filter-mapping></filter-mapping>是用來映射指定路徑文件到filter的。

<filter>
<filter-name>setEncoding</filter-name>
<filter-class>com.test.struts.filters.SetCharacterEncodingFilter</filter-class>
<!--這里還可以使用初始變數
<init-param>
<param-name>name</param-name>
<param-value>value</param-value>
</init-param>
再在SetCharacterEncoding.java的定義一個privateStringencoding=null;
在init函數中加一句this.encoding=filterConfig.getInitParameter("encoding");
-->
</filter>
<filter-mapping>
<filter-name>setEncoding</filter-name><!--這個名稱和上面的要相同-->
<url-pattern>/*</url-pattern><!--所有文件-->
</filter-mapping>

配置完後運行一下項目就不再看到那煩人的亂碼了!

Ⅳ maven filter 中文亂碼,應該用什麼思路解決

1、查看被fitler的文件是否帶utf-8的Bom頭,去掉bom頭,帶了有可能報錯
2、windows maven的war插件的版本,2.1-bata-1有問題,它的編碼識別有問題,懷疑是按照iso-5589-1解析,fitler後的文件16進制查看為3f,造成黑洞現象
3、網上很多解決方式是改成gbk,這個是一種解決方案,如果希望繼續使用utf-8編碼的,請修改war的filter,還有不要忘記resource插件的編碼設置。

Ⅵ 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="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>

Ⅶ 用filter過濾器處理亂碼,卻沒有產生作用,哪位給指點一下

下次希望你能排版一下代碼 這樣不容易看懂.....

Ⅷ Java亂碼問題。我配置一個Filter,但是搜索卻失效了。

web.xml裡面配置的<param-value>是utf-8么?
還有doFilter裡面
response.setContentType("text/html;charset=" + encoding);
request.setCharacterEncoding(encoding);
倆都寫上

Ⅸ java web 亂碼過濾器 filter 有什麼作用

注意問題:在學慣用selvert的過濾器filter處理中文亂碼時,在filter配置初始化時用了utf-8處理中文亂碼,而在提交的jsp頁面回中卻用了gbk。雖然兩種都可以出來中文亂碼,但是卻造成了處答理亂碼的格式不一致。所以編譯出錯。

Ⅹ 不用spring怎麼寫filter來解決中文亂碼的問題,謝謝!在線等

可以編寫一個Filter
public class EncodingFilter implements Filter {
/** 編碼 */
String encoding = null;

/** 銷毀編碼 */
public void destroy() {
this.encoding = null;
}

/**
* 執行過濾鏈,對請求和相應設置編碼
*/
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {

if (encoding != null) {
// 對請求進行編碼設置
request.setCharacterEncoding(encoding);
response.setCharacterEncoding(encoding);
}
// 將處理權轉交給下一個處理器
chain.doFilter(request, response);
}

/**
* 初始化編碼,從配置文件中獲取編碼的值
*/
public void init(FilterConfig filterConfig) throws ServletException {

this.encoding = filterConfig.getInitParameter("encoding");

}

}

需要再Web.xm中注冊攔截器
<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.sato.filter.EncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>GBK</param-value>
</init-param>
</filter>

閱讀全文

與filter過濾所有亂碼相關的資料

熱點內容
厭氧廢水的氧化還原電位 瀏覽:897
長春市污水處理工上崗證 瀏覽:359
牙齒納米鍍膜樹脂貼面 瀏覽:353
凈水器需要從哪裡放水 瀏覽:811
超濾反洗的步驟 瀏覽:591
14款漢蘭達汽油濾芯怎麼換 瀏覽:619
工業純水機要怎麼選 瀏覽:171
空氣凈化器進水了怎麼辦 瀏覽:707
原神純水精靈bug怎麼打 瀏覽:56
鋼丸鋼砂過濾 瀏覽:501
氯鹼工業產生的廢水如何處理 瀏覽:567
空氣凈化器開不了機是什麼問題 瀏覽:403
納濾流程圖 瀏覽:803
家用ro膜每次反沖洗多久好 瀏覽:674
太原澱粉污水處理設備多少錢 瀏覽:807
大型凈水機設備排多少廢水 瀏覽:527
環氧乙烯樹脂怎麼洗 瀏覽:336
污水管進污水井要深入多少 瀏覽:853
污水中的氨氮是如何產生的 瀏覽:360
大金中央空調帶提升泵嗎 瀏覽:453