當前位置:首頁 » 文件管理 » springmvc上傳亂碼

springmvc上傳亂碼

發布時間: 2022-09-27 04:53:49

A. springmvc參數傳遞的幾種亂碼情況

@RequestParam 或者@PathVariable 等從URL或者Form Data 獲取參數數據。

當其中有中文的時候,會發生了亂碼。
1.方法一:修改Tomcat的server.xml
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />

添加URIEncoding="utf-8"

<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="utf-8"/>
2.方法二:手動更改
String name = new String(name.getBytes("ISO-8859-1"),"UTF-8");

其次POST方法

方法一:使用Spring的字元過濾器
配置在web.xml中:
<filter>
<filter-name>encoding</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>encoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
方法二:手動更改

B. 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");如果用了攔截器的話,就在攔截器中統一解碼好啦。你可以試試!希望能幫到你哦!

C. 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">

D. 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,上網查了資料在連接數據源的時候加上編碼格式就可以了

E. springmvc redirect 傳參為什麼是亂碼

spring redirect

用spring redirect中文會亂碼:如下示例
public String redirectTest(){
redirect:/payment/alipay?body="中文";
}
瀏覽器會出現 body=??中文亂碼

[編輯]解決方案

spring mvc 有自定義的org.springframework.ui.Model類用與封裝url攜帶的參數具體方式如下:
public String redirectTest(Model model){
model.addAttribute("body", "中文");
return "redirect:/payment/alipay";
}

或者如下方式
public ModelAndView redirectTest(){
return new ModelAndView("redirect:/payment/alipay").addObject("body","中文");
}

以上兩種方法都是將方法參數添加到spring自定義的對像中這樣就不會亂碼的情況了

建議將url的攜帶參數add到Model對象中

F. springmvc怎樣控制頁面傳值亂碼

最近在做一個項目。用的springmvc框架,遇到了頁面傳值亂碼的問題。
web.xml中已經統一配置了編碼過濾器。
<filter>
<filter-name>encodingFilter</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>
這種方式可以解決大部分亂碼的問題,但是需要注意的是該過濾器只對post請求有用。如果form表單沒寫傳值方式的話會默認為get。
很小的一個細節,但是很重要。

熱點內容
怎麼查伺服器ip段 發布:2024-10-09 13:08:04 瀏覽:151
ftpaws 發布:2024-10-09 12:53:20 瀏覽:272
生化危機5ftp 發布:2024-10-09 12:45:22 瀏覽:227
系統的安全配置有哪些 發布:2024-10-09 12:31:41 瀏覽:569
安卓馬桶蓋怎麼拆 發布:2024-10-09 12:19:00 瀏覽:219
移動硬碟文件夾消失 發布:2024-10-09 12:18:20 瀏覽:548
編譯器會自動為它賦初值 發布:2024-10-09 11:42:28 瀏覽:349
演算法自愈 發布:2024-10-09 11:42:27 瀏覽:691
小米密碼輸入錯誤多少次會被鎖 發布:2024-10-09 11:41:46 瀏覽:578
源碼種類 發布:2024-10-09 11:20:35 瀏覽:366