Ⅰ java文件中 一個字元串傳到jsp中, 再傳到java中就亂碼了 怎麼解決!
方法一:設置
request
和
response
的編碼
[
頁面編碼必須為
u8
]
request.setCharacterEncoding("UTF-8");//傳值編碼
response.setContentType("text/html;charset=UTF-8");//設置傳輸編碼
方法二:
String
str1=傳來的數據。
String
ss=new
String(str1.getBytes("ISO-8859-1"),"utf-8");
//轉碼UTF8
Ⅱ java中頁面傳值中文亂碼
js請求的對好方法是進行兩次編碼
enkey
=
encodeURI(encodeURI(key));
然後在服務端解碼一次,就不會出現亂碼了
當然編碼和解碼的字元集要一致,由於JavaScript是用utf-8所以解碼時也應用utf-8
Ⅲ jsp向java後台傳遞參數亂碼
首先jsp頁面編碼要統一 建議都使用 utf-8
傳值得話 如果是 post 後台第一句加 request.setCharacterEncoding("UTF-8")
get 的話就是
String parm=new String(request.getParameter("parm").getBytes("ISO-88591"),"UTF-8");
javascript 傳
window.location.href =" xxx.jsp ? parm="+ encodeURI('中文');
後台在 String parm = java.net.URLEncoder.encode( request.getParameter("parm"), "utf-8 ")
Ⅳ java為什麼 jaxa 傳值出現亂碼
ajax傳值,出現亂碼大都是傳值的編碼和接收的解碼不一致造成的
Ⅳ java前台向後台傳參為什麼會亂碼
編碼格式問題,在後台轉碼不就好了嘛
Ⅵ java Swing 向資料庫傳參數出現亂碼怎麼辦
格式化參數。校對資料庫與代碼的字元集編碼。
Ⅶ java HttpPost傳入參數中文亂碼
以上的2個方法最好都要用上 過濾器只能解決POST請求 ,要處理GET請求就要用
bytes = string.getBytes("iso-8859-1") 得到原始的位元組串,再用 string = new String(bytes, "GB2312") 重新得到正確的字元串 。
這個方法,所以最好2個都要寫,這樣不管是POST還是GET請求就都能解決了。
Ⅷ java怎麼亂碼了
大概的思路就是重新編碼為gbk或者gb2312,分兩種情況
一是get和post形式
二是AJax 形式
第一種:GET和POST,取決於你的頁面編碼,如果你的頁面編碼為iso8859_1
使用:String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GB2312");
但是,這里要注意,必須保證你的頁面編碼也是iso8859_1的,因為,上面的代碼的意思是先將你的字元串變為iso8859_1位元組流,
然後再轉化為GBK編碼,如果你頁面傳過來的編碼是utf-8,那麼按照上面的方法就會出現:???亂碼
你頁面是utf-8的,就要使用如下編碼:
String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312");
總之get post 原則很簡單,頁面什麼編碼就轉化什麼位元組流轉化編碼
第二:Ajax傳值
這個比較麻煩,據測試,不同的瀏覽器有不同的對中文編碼,怎麼辦呢?
我們可以採用js的encodeURI()進行統一的編碼,然後在後台進行統一的解碼
對應的java解碼代碼:
str= java.net.URLDecoder.decode(str, "UTF-8");
當然,因為他是utf-8編碼,所以也可以採用第一種get post 介紹的方法解碼(據測試,用 String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312")解碼js的encodeURI()時,會出現亂碼,所以還是老老實實的使用java.net.URLDecoder.decode(str, "UTF-8");)
不好意思,剛剛查了資料,上面講的Get方式有錯:
Tomcat對於GET請求並不會考慮使用request.setCharacterEncoding方法設置的編碼,而會永遠使用iso-8859-1編碼,而這位朋友使用的正好是GET請求,因此,tomcat將會使用iso-8859-1將提交的位元組轉換成字元串。
所以,對於使用get方式傳值的時候,統一使用String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");當然,前提是你伺服器是tomcat。
Ⅸ Java中文傳值亂碼
你試試將編碼改成GBK或GBK2312的
Ⅹ 在java中,我向jsp頁面傳遞數組值的時候出現中文亂碼。
按位元組轉換慎用,95%的亂碼這樣是解決不了的
首先要確認java 中取到數據是否亂碼?有些時候是資料庫到 java 就亂碼了。
然後直接在 頁面alert 你的結果,盡量不走任何方法。看看是否是界面上的js導致的亂碼?早期的ext、jquery都有自以為是轉碼的毛病
另外提一點,你放在數組里是怎麼傳到前台的,別說你把數組直接傳遞了。那相當於 str.toString()
返回的可能是數據類型而不是你要的值。