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

spring過濾器解決亂碼

發布時間:2020-12-15 00:42:21

『壹』 springmvc 在web配置了編碼攔截器,並且我整個工程都是UTF-8格式的,為什麼responseText中文還是亂碼

<%@pagecontentType="text/html;charset=UTF-8"%>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">

你所說的整個工程都是UTF-8格式,那麼jsp頁面上是不是專都加上了這兩屬句

『貳』 如何在Spring中解決中文亂碼的方法

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

/** 銷毀編碼 */
public void destroy() {
.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>

『叄』 通過spring依賴注入時,得到的實體對象的中文屬性值是亂碼,該怎麼解決

檢查一下你項目的編碼,改成utf8的

『肆』 springmvc js ajax請求 中文亂碼問題

初略的看了一下你的問題,大概明白了,出現亂碼的原因大概是你的伺服器編專碼問題,屬tomcat的默認編碼是ISO-8859-1這種編碼,所以如果你需要更改,tomcat/conf/server.xml中找到 Connector 在後面加上 URIEncoding="UTF-8" 即可,如果不更改的話,你就得在action中,也就是接受端用ISO-8859-1解碼回來,如new String(str.getBytes("ISO-8859-1"),"UTF-8");如果用了攔截器的話,就在攔截器中統一解碼好啦。你可以試試!希望能幫到你哦!

『伍』 spring MVC接收中文亂碼問題

1:表單提交controller獲得中文參數後亂碼解決方案
注意:jsp頁面編碼設置為UTF-8
form表單提交方式為必須為post,get方式下面spring編碼過濾器不起效果
<%@pagelanguage="java"import="java.util.*"pageEncoding="UTF-8"%>
<formaction="${ctx}/user/addUser"name="userForm"method="post">
修改web.xml,增加編碼過濾器,如下(注意,需要設置forceEncoding參數值為true)
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

2:表單提交controller獲得中文參數後正常顯示控制台,然後保存資料庫出現亂碼
注意:資料庫編碼是否支持中文
資料庫表和表欄位是否正確

在配置連接資料庫的參數設置修改:
<propertyname="url"value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>第一種情況:
jsp頁面中文輸入,到controller亂碼,這時候需要設置的是在web.xml文件中添加一個編碼的過濾器(filter)將編碼統一為UTF-8,代碼如下:
Web.xml配置文件:
view
sourceprint?
01.<filter>
02.<filter-name>CharacterEncodingFilter</filter-name>
03.<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
04.<init-param>
05.<param-name>encoding</param-name>
06.<param-value>utf-8</param-value>
07.</init-param>
08.</filter>
09.<filter-mapping>
10.<filter-name>CharacterEncodingFilter</filter-name>
11.<url-pattern>/*</url-pattern>
12.</filter-mapping>


這里需要注意的是,最好把這段代碼放在web.xml中開頭的位置,因為攔截有順序,如果放在後面的話容易攔截不到。
第二種情況:
資料庫中文數據,jsp頁面顯示亂碼(不是嚴格意義上的亂碼,而是以問號的形式呈現)
由於我們前後台的數據交互使用的是json數據,出現這種情況的原因我也不太清楚,之前也沒遇到過,只能怪自己做過的項目太少,解決起來也不困難,只需要在轉json的時候設置一下編碼格式就可以了,代碼如下:
view
sourceprint?
1.response.setContentType("application/json;charset=UTF-8");//防止數據傳遞亂碼
寫上這句話就不會再出現亂碼了。
第三種情況:
頁面中文,傳遞到controller也是正確的,但是保存到資料庫之後就是亂碼(也不是嚴格意義的亂碼,跟上面一樣全是問號)
這個問題困擾了我一段時間,開始覺得資料庫的編碼格式不正確,重新創建了編碼格式為utf-8的資料庫也還是不可以,最後覺得是jboss的問題,我們的伺服器用的是jboss,上網查了資料在連接數據源的時候加上編碼格式就可以了

『陸』 spring亂碼問題,菜鳥求教

1:表單提交controller獲得中文參數後亂碼解決方案
注意: jsp頁面編碼設置為UTF-8
form表單提交方式為必須為post,get方式下面spring編碼過濾器不起效果
[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>  
[html] view plain
<form action="${ctx}/user/addUser" name="userForm" method="post">    
修改web.xml,增加編碼過濾器,如下(注意,需要設置forceEncoding參數值為true)
[html] view plain
<filter>  
        <filter-name>characterEncodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>  
            <param-name>forceEncoding</param-name>  
            <param-value>true</param-value>  
        </init-param>  
    </filter>  
    <filter-mapping>  
        <filter-name>characterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
    </filter-mapping>  

2:表單提交controller獲得中文參數後正常顯示控制台,然後保存資料庫出現亂碼
注意:
資料庫編碼是否支持中文
資料庫表和表欄位是否正確

在配置連接資料庫的參數設置修改:
[html] view plain
<property name="url" value="jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=UTF-8"></property>

『柒』 為什麼使用了SPRING 過濾器還會出現中文亂碼

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

『捌』 不用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>

『玖』 spring mvc用註解方式配置控制器,怎麼出現亂碼

1:表單提交controller獲得中復文參數制後亂碼解決方案
注意: jsp頁面編碼設置為UTF-8
form表單提交方式為必須為post,get方式下面spring編碼過濾器不起效果

[html] view plain
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
[html] view plain
<form action="${ctx}/user/addUser" name="userForm" method="post">

『拾』 在使用ssh框架中,出現了 中文亂碼問題 ,怎麼解決

解決亂碼幾小點:
1.配置過濾器,可以選擇自己寫,既然你用的SSH框架就更簡單了,直接用Spring的過濾器,web.xml里配置一下即可。

2.Jsp頁面設置編碼,所有地方都要相同,我習慣用GBK
<%@ page contentType="text/html;charset=GBK" %>
也可以使用HTML的頁面編碼配置
<meta http-equiv="Content-Type" content="text/html; charset=GBK">

3.配置Tomcat(我們用,別的伺服器另找)編碼
在server.xml中配置,如:
<Connector port="8080" maxHttpHeaderSize="8192"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="GBK" />

4.如果還出現亂碼,只能用這招了,我很少用
new String(s.getBytes("ISO-8859-1"),"GBK")

一般用Form提交前兩種方式就不會出現亂碼,用get請求,在url後追加中文參數前兩種不管用,需配置Tomcat或者第四種,重新編碼

閱讀全文

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

熱點內容
超純水跟自來水有什麼區別 瀏覽:516
姬存希黃瓜膠與蒸餾水配比 瀏覽:150
污水處理測試多少以上合格 瀏覽:189
跑膠時蒸餾水代替緩沖液後果 瀏覽:414
金日飲水機多少錢一台 瀏覽:808
PALL超濾管15ml 瀏覽:621
納濾電 瀏覽:114
10寸顆粒碳濾芯怎麼樣 瀏覽:23
成熟的植物細胞相當於半透膜 瀏覽:595
反滲透嚴重堵塞怎麼洗 瀏覽:820
溴水中分離單質溴能不能用蒸餾 瀏覽:347
901樹脂的固化劑和促進劑的作用 瀏覽:740
安吉爾凈水機一直排廢水 瀏覽:318
不用的廢水井能留糞便嗎 瀏覽:942
工業廢水的達標測試 瀏覽:307
飲水機加熱杯壞了怎麼辦 瀏覽:937
老款五菱宏光空調濾芯怎麼換視頻 瀏覽:303
超濾凈水器過濾後的水可以直飲嗎 瀏覽:165
飲水機管線盒是干什麼用的 瀏覽:934
陝西磷化污水處理多少錢 瀏覽:938