導航:首頁 > 凈水問答 > 過濾器檢查是否亂碼

過濾器檢查是否亂碼

發布時間:2023-05-25 19:36:13

『壹』 JS如何判定輸出是不是亂碼

js輸出亂碼優化:
1、如果是ajax:首先要看看後台進行response輸出時,設置的頭文件格式是不是utf-8,並且要保證輸出的類型為text/html
2、判斷瀏覽器解析的是不是utf-8:看看網頁展示的中文是不是亂碼,如果是,那麼就有可能是沒指定解析編碼,指定方式如樓上所說,<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3、沒有說明具體語言,以java為例,看看是否加字元過濾器,進行談閉請求過濾,這個簡單,tomcat安裝的時候就可以選擇安裝實例,裡面就有現成的差蘆,拷過來加進去就行。另外網上到處都是。
4、可以打開 源文件看看是不是源碼本身是亂碼,這是由於開發工具虛侍帶本身設置的編碼格式引起的,如Eclipse、MyEclipse中都有這方面的設置

『貳』 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>

『叄』 p6使用過濾器過濾的值是亂碼怎麼回事

MVC的過濾器如果優先於spring的編碼過濾器就會出現亂碼情況
需要將spring的編碼過濾器優先等級提高

『肆』 如何使用過濾器解決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>

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

『伍』 怎麼用過濾器處理中文亂碼問題

過濾器對於用url方式的參數是沒有法過濾的所以在以url(或表單提交方式是get的數據)傳值的時候應該硬性轉碼:Stringpara=newString(str.getByte("iso-8859-1"),"UTF-8");

『陸』 怎麼使用過濾器解決中文亂碼

首先有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 {

}

}

『柒』 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中也正常。

『捌』 javaweb,給HTML文件加上過濾器以後,HTML顯示亂碼。

那是你的瀏覽器不識別Content-Type,採用了默認的GBK/GB2312編碼顯示,這個可以在打開頁面「右鍵-編碼」看到;meta最好給一個結束符,即:<meta http-equiv="content-type" content="text/html; charset=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>

『拾』 jsp頁面經過濾器過濾後中文成為亂碼

統一使用utf-8試試看

閱讀全文

與過濾器檢查是否亂碼相關的資料

熱點內容
800石英砂過濾器 瀏覽:847
不粘鍋除垢小蘇打 瀏覽:385
提升泵反水 瀏覽:369
蒸餾法過程視頻 瀏覽:759
紹興有機污水處理多少錢 瀏覽:236
小鳥飲水機中裝的什麼液體 瀏覽:226
酸洗廢水提升泵 瀏覽:659
合肥空氣過濾設備 瀏覽:480
有機物蒸餾設備 瀏覽:120
樹脂切割片配方比例 瀏覽:522
edi除鹽裝置三個字母怎麼意思 瀏覽:468
水處理是商標注冊多少類 瀏覽:684
新型果汁污水處理設備哪裡賣 瀏覽:770
麗水反滲透膜修復劑怎麼樣 瀏覽:966
浙江電鍍污水除氰價格如何 瀏覽:800
ro膜紅色頭是什麼 瀏覽:870
自帶過濾器風機 瀏覽:272
反滲透回收率是什麼意思 瀏覽:812
家庭污水提升泵多少錢 瀏覽:877
超濾膜反接後電導率合格嗎 瀏覽:345