jsp資料提交至servlet中文亂碼
【出現亂碼的原因】
首先無論使用get方式提交,還是post方式提交,如果引數中包含中文,瀏覽器都會使用當前瀏覽器編碼對其進行URL編碼,然後伺服器端再進行URL解碼,如果瀏覽器提交資料的編碼和伺服器接收資料的編碼格式不一致,那麼就有可能產生中文亂碼。在ie中可以通過選單欄--檢視---編碼檢視編碼格式。
【post方式提交亂碼解決方法】
對於表單中POST方式提交的資料,只要在接收資料的JSP中正確request.setCharacterEncoding引數,即將對客戶端請求進行重新編碼的編碼設定成瀏覽器編碼,就可以保證得到的引數編碼正確。
request.setCharacterEncoding(myEncoding );
request.setCharacterEncoding(myEncoding)的作用是設定對客戶端請求進行重新編碼的編碼。該方法用來指定對瀏覽器傳送來的資料進行重新編碼(或者稱為解碼)時,使用的編碼。
另外還有一點需要注意:
request.setCharacterEncoding(myEncoding)和response.setCharacterEncoding(myEncoding )
的區別,前者是瀏覽器提交到後臺時對提交的資料設定編碼,後者是後臺傳送資料到瀏覽器時對
對於傳送資料,設定編碼。
【get方式提交亂碼解決方法】(參考湯陽光OA)
方案一:
str = new String(str.getBytes("ISO-8859-1"),"UTF-8"),這種方式的大概意思,道說是先把str按照“ISO-8859-1”編碼格式拆分成陣列,再轉為GBK格式組合起來。(這種方式有的情況下不能轉換好。不推薦)
方式二:
在tomcat伺服器中修改server.xml:URIEncoding="utf-8",因為在Tomcat5.0中和以後,預設情況下使用ISO-8859-1對URL提交的資料和表單中GET方式提交的資料進行重新編碼。
方式三(不依賴Tomcat的配置,推薦):
瀏覽器中兩次URL編碼。
伺服器中自己再做一次
因為引數中包含中文,瀏覽器都會使用當前瀏覽器編碼對其進行URL編碼,然後伺服器端再進行URL解碼。如果首先將中文編碼,然後再傳到伺服器端那麼就不會出現亂碼錯誤了。
jsp頁面程式碼如下:
var name=encodeURI($('#inputJobName').val());
var name=encodeURI(name);
$.ajax({
url:"/Newbigdata/NewJobFromTableServlet?jobname="+name,
success: function(data) {
window.location=data;
},
error:function(){
alert('error!');
}
});
request.setCharacterEncoding("UTF-8");
String jname=URLDecoder.decode(request.getParameter("jobname"),"utf-8");
相關推薦
jsp資料提交至servlet中文亂碼
【出現亂碼的原因】 首先無論使用get方式提交,還是post方式提交,如果引數中包含中文,瀏覽器都會使用當前瀏覽器編碼對其進行URL編碼,然後伺服器端再進行URL解碼,如果瀏覽器提交資料的編碼和伺服器接收資料的編碼格式不一致,那麼就有可能產生中文亂碼。在
HTML通過from表單提交到servlet中文亂碼問題
在HTML檔案中,通過from表單提交到servlet類中,可能會發生中文亂碼問題: 比如輸入一下資訊: 結果顯示的內容: 在servlet中進行除錯: 發現在servlet中得到的資料就是亂碼的資料: 這個問題是因為在傳值過程中,編碼方式引起的問題,所以,在serv
jsp servlet中文亂碼終極解決方法
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Servlet生命週期、常用提交方式、中文亂碼問題、重定向和請求轉發
//當前工作空間絕對路徑System.getProperty("user.dir"); 一個Servlet的生命週期由 例項化,初始化,提供服務,銷燬,被回收 幾個步驟組成Serlvet構造方法 只會執行一次,所以Serlvet是單例項的init初始化 只會執行一次 &
jsp中Get提交方式的中文亂碼解決辦法
解決辦法: 步驟1. 加過濾器,即在filter裡的init()里加上request.setCharacterEncoding("utf-8");相當於每個頁面的編碼都是utf-8, 步驟2. 將表單提交方法改成post方式,至於get方式的解決目前還不知道 上面兩
2017.6.17 jsp中 get請求的中文亂碼問題的解決方法
utf meta class enc 請求 服務 charset url編碼 uri 一般Tocant 的url編碼是iso-8859-1(查看tocat/conf/server.xml 中的Connector 節點沒有寫URIEncoding="xxxxxx") 如下:
Spring 4 MVC的post提交form時中文亂碼
pos track 亂碼 -a art charset ring value html 假設你發現Spring 4 MVC的Post請請求亂碼,請加入accept-charset的標簽為utf-8就能解決。例如以下: <form name=
JSP的學習三(中文亂碼)
使用 cal cto con ebo char tom har 信息 1). 在 JSP 頁面上輸入中文, 請求頁面後不出現亂碼: 保證 contentType="text/html; charset=UTF-8", pageEncoding="UTF-8" c
java servlet 中文亂碼
window servlet out efault system ava main函數 set print 在servlet中向控制臺輸出中文亂碼; 但是在servlet裏的main函數輸出,中文是正確的; 通過在main函數裏加了一段 System.out.print
Servlet中文亂碼原因 解決 Get 和 Post 和客戶端
this decode println .net pri version 取字符 tail 默認 一、Get方式的中文亂碼 1) 使用如下頁面表單內容: <form action="http://127.0.0.1:8080/day07/params" method=
JSP頁面傳值出現中文亂碼的問題
中文亂碼 set 登錄用戶 ttr name use encoding 發送信息 jsp 在接收值的jsp頁面代碼的body裏添加: <%request.setCharacterEncoding("utf-8"); %> //這裏是設置utf-8為jsp頁面
jsp向後臺傳參中文亂碼
1.如果已經試過配置檔案過濾器和jsp頁面設定編碼仍傳參亂碼,可以試試編碼和解碼方法。如圖:jsp頁面中如果分開寫,先宣告變數,通過id獲得值,再傳值無法獲得值的話,就寫成一句,就像紅框中的。(注意:如果以一次編碼方法不行,再進行第二次編碼,encodeURI(encodeURI(值)),就是在最外
Java Web 中 Servlet 中文亂碼解決方法
Servlet中文亂碼問題解決方法 import java.io.*; import java.net.URLEncoder; import javax.servlet.*; import javax
【java web】JSP中form表單中文亂碼的解決嘗試
在人生中的第一個實際專案中,我遇到了一個很困擾的問題,就是在內管系統中,我做了一個測試頁面,用來測試向對方介面傳遞引數,我使用了jsp的form表單向後端傳遞引數,在本地啟動服務,進行測試都沒有問題,沒有出現中文亂碼的情況,但是提交到測試環境進行驗證時,卻出現了
關於servlet中文亂碼問題如何解決
mysql資料庫的話: 建立資料庫時最好指定字符集,例如: create database db default character set utf8; 寫連線資料庫程式碼時可以在url後面加些引數:String&
使用GZIP解壓縮資料,以及解決中文亂碼
package com.io.test; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.util.zip.GZIPInputStream; i
Servlet中文亂碼問題及其解決方法
關於設定中文的亂碼問題 原因:response緩衝區的預設編碼是iso8859-1,此碼錶中沒有中文,可以通過response的setCharacterEncoding(String charset)
ajax提交 後臺返回中文亂碼問題
介面返回資料相關使用@ResponseBody後返回NUll說明:剛把後臺執行起來,興高采烈的測試介面資料,結果無論如何都是返回null,最終通過各種百度,發現原來是沒有引入關鍵的Jar包.解決辦法: 需要引入jackson的jar包(jackson core和jackson
MySQL根據select語句匯入匯出資料(含解決中文亂碼方式)
所有都親測,不廢話,上程式碼: 匯出 select count(1) from table into outfile '/tmp/test.xls' character set gbk; 匯入
springmvc controller和servlet中文亂碼問題
一、第一種方法通過tomcat配置和spring編碼過濾器解決中文亂碼 1、修改tomcat配置檔案server.xml Xml程式碼 修改tomcat下的conf/server.xml檔案 找到如下程式碼: <Connector port="8080" protoc