導航:首頁 > 凈水問答 > java過濾器解決get亂碼

java過濾器解決get亂碼

發布時間:2021-01-02 00:42:41

❶ 關於java中 get提交方式的亂碼問題。

通常瀏覽器是用iso-8859-1編碼傳輸信息的。
而也要看你在頁面那邊是版設置什麼編權碼的,假如是utf-8。你編碼是用utf-8,解碼是用iso-8859-1,那麼就像你自己寫的那個一樣,那肯定會亂碼的。
第一個是將接收到的數據,用iso8859-1解碼,再用utf-8編碼,那就解決了亂碼問題了

❷ java 字元串中亂碼過濾

new String(str.getBytes(),"GBK");
用這方法,把亂碼正確顯示。當然編碼要自己設

❸ Java 亂碼問題 怎樣寫一個過濾器文件來處理亂碼問題啊

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;
import javax.servlet.http.HttpServletRequest;public class PageEncodeFilter implements Filter { private FilterConfig fConfig;
private String encode;
public void destroy() {
this.fConfig = null;
this.encode = null;
} public void doFilter(ServletRequest arg0, ServletResponse arg1,
FilterChain fc) throws IOException, ServletException {
HttpServletRequest hsr = (HttpServletRequest)arg0;
hsr.setCharacterEncoding(this.encode);
fc.doFilter(arg0, arg1);
} public void init(FilterConfig fConfig) throws ServletException {
this.fConfig = fConfig;
this.encode = this.fConfig.getInitParameter("encode");
}}然後到web.xml 下配置 <filter>
<filter-name>PageEncodeFilter</filter-name>
<filter-class>com.popedom.util.PageEncodeFilter</filter-class>
<init-param>
<param-name>encode</param-name>
<param-value>gb2312</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>PageEncodeFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

❹ java get方式請求中文亂碼求解決

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

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

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

❻ 瀏覽器get請求到java後台的值是亂碼

編碼問題首先檢查編碼和解碼是否一致。看下你的jsp是否編碼設置了utf-8,默認是iso-8859-1,
然後就是解碼的時候的編碼,在你的servlet或者controller中檢查request和response是否設置了編碼,一般是request.setCharacterEncoding("utf-8");response.set...
如果都設置了的話,post發送數據應該是不會亂碼的。get發送數據亂碼,是因為你的jsp中設置的編碼utf-8沒有生效在get請求下,解決方案兩種:1、修改伺服器中的默認編碼,
在tomcat安裝目錄下的conf/server.xml中,有如下的配置:
<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>可以設置埠

這里呢,也可以設置另外一個跟上述編碼問題有關的參數信息:URIEncoding,該配置決定了使用get請求通過瀏覽器地址欄訪問tomcat時的編碼方式,默認的編碼方式使ISO8859-1,這一點我們可以從官網文檔(https://tomcat.apache.org/tomcat-7.0-doc/config/http.html) 獲悉:
URIEncoding:This specifies the character encoding used to decode the URI bytes, after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
知道了這點,接下來就簡單了,我們可以這樣配置,則上述代碼中,就不需要再從ISO8859-1轉為UTF-8了:
URIEncoding="UTF-8"

就是改成這樣: <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
即可。

或者使用後台手動進行解碼:
String s=new String(str.getbyte("iso-8859-1"),"utf-8");
先解碼後編碼。
如果嫌每次這樣麻煩,可以寫過濾器攔截你的get清秀將request中的parameter轉換編碼

❼ java get方式中文亂碼

get方式提交的參數編碼,只支持iso8859-1編碼。
因此,如果裡面有中文。
在後台專就需要轉換編碼,如下
String zhongwen = request.getParameter("zhongwen");
zhongwen = new String(zhongwen.getBytes("iso8859-1"),"GBK");
前提是屬你頁面編碼就是GBK,如果是utf-8,那上面那句代碼後面就改成utf-8

❽ 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>

❾ JSP編碼過濾器,但是Servlet輸出還是亂碼

別懶,網上多的是。下面給你個常用的,關鍵要理解原理:
關於contentType 和 pageEncoding 的區別以及JSP中文處理內幕
contentType — 指定的是JSP頁最終 Browser(客戶端)所見到的網頁內容的編碼.
就是 Mozilla的 Character encoding, 或者是 IE6的 encoding. 例如 JSPtw Forum 用的contentType就是 Big5.
pageEncoding — 指定JSP編寫時所用的編碼
如果你的是 WIN98, 或 ME 的NOTEPAD記事本編寫JSP, 就一定是常用的是Big5 或 gb2312, 如果是用 WIN2k winXP的NOTEPAD時, SAVE時就可以選擇不同的編,碼, 包括 ANSI(BIG5/GB2312)或 UTF-8 或 UNIONCODE(估是 UCS 16). 因為 JSP要經過 兩次的」編碼」:
第一階段會用 pageEncoding, 第二階段會用 utf-8 至utf-8, 第三階段就是由TOMCAT出來的網頁, 用的是contentType.
階段一是 JSPC的 JSP至JAVA(.java)原碼的」翻譯」, 它會跟據 pageEncoding 的設定讀取JSP. 結果是 由指定的pageEncoding(utf-8,Big5,gb2312)的JSP 翻譯成統一的utf-8 JAVA原碼(.java). 如果pageEncoding設定錯了, 或沒設定(預設 ISO8859-1), 出來的 在這個階段 就已是中文亂碼.
階段二是由 JAVAC的JAVA原碼至JAVA BYTECODE的編譯. 不論JSP的編寫時是用(utf-8,Big5,gb2312),經過階段一的結果全都是utf-8的ENCODING的JAVA原碼.JAVAC用 utf-8的ENCODING讀取AVA原碼, 編譯成字元串是 utf-8 ENCODING的二進制碼(.class). 這是 JAVA VIRTUAL MACNHINE對常數字元串在 二進制碼(JAVA BYTECODE)內表逹的規范.
階段三是TOMCAT(或其的application container)載入和執行階段二得來的JAVA二進制碼, 輸出的結果( 也就是BROWSER(客戶端))
見到的. 這時一早隱藏在階段一和二的參數contentType, 就發揮了功效. (見 階段一的 ).
response.setContentType(」text/html; charset=utf-8″);
出來的可以是 utf-8, Big5, gb2312, 看的就是JSP ? contentType的設定.
<%@ page session=」false」 pageEncoding=」big5″ contentType=」text/html; charset=utf-8″ %>
還有, pageEncoding 和contentType的預設都是 ISO8859-1. 而隨便設定了其中一個, 另一個就跟著一樣了(TOMCAT4.1.27是如此).但這不是絕對, 看的各自JSPC的處理方式. 而pageEncoding不等於contentType, 更有利亞洲區的文字 CJKV系JSP網頁的開發和展示,(例pageEncoding=Big5 不等於 contentType=utf-8).一個簡單的解決方法是在包含和被包含文件的開始部分都加上:
<%@ page contentType=」text/html;charset=GB2312″ language=」java」 %>
---------------------------------------------------------------
ContentType
ContentType屬性指定了MIME類型和JSP頁面回應時的字元編碼方式。MIME類型的默認值是「text/html」; 字元編碼方式的默認值是「ISO-8859-1」. MIME類型和字元編碼方式由分號隔開

pageEncoding的內容只是用於jsp輸出時的編碼,不會作為header發出去的。

pageEncoding 是通知web server jsp的編碼。
pageEncoding
在JSP標準的語法中,如果pageEncoding屬性存在,那麼JSP頁面的字元編碼方式就由pageEncoding決定,否則就由contentType屬性中的charset決定,如果charset也不存在,JSP頁面的字元編碼方式就採用默認的ISO-8859-1。

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

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

閱讀全文

與java過濾器解決get亂碼相關的資料

熱點內容
為什麼水族館魚缸里的水沒有水垢 瀏覽:425
葡萄糖酸鈉廢水分散劑 瀏覽:352
嘉興污水排放標准最新 瀏覽:328
油煙凈化器保養表怎麼做 瀏覽:113
廣東滌綸紡粘無紡布過濾無紡布 瀏覽:50
茅台純凈水多少錢一瓶 瀏覽:797
瀝青廢水有什麼影響 瀏覽:663
agcen艾吉森空氣凈化器怎麼樣 瀏覽:272
3012反滲透膜 瀏覽:393
鮮知鮮覺空氣凈化器怎麼樣 瀏覽:672
D152離子交換樹脂怎麼再生 瀏覽:751
去除燒水壺裡面的水垢 瀏覽:126
聚丙烯塑料樹脂750M 瀏覽:567
長春凈水機多少錢 瀏覽:525
不銹鋼用綠傘除水垢劑弄黑了咋辦 瀏覽:297
蒸餾水與去離子水區別 瀏覽:103
做豆腐的廢水有沒有臭味 瀏覽:949
濾芯廢水閥壞了有什麼症狀 瀏覽:826
樹脂粘度數 瀏覽:711
硫酸鈣離子交換法測溶度積 瀏覽:358