導航:首頁 > 編程語言 > javajson中文亂碼

javajson中文亂碼

發布時間:2022-07-17 14:59:49

『壹』 java crawler4j抓取頁面上的動態信息 結果返回的json值裡面的中文變為亂碼

在Response添加編碼
response.setContentType("text/json");
response.setCharacterEncoding("UTF-8");

如果還是不行,請檢查web端寫入的時候,是否規定了
data.put("no", java.net.URLEncoder.encode("終極解決辦法", "utf-8"));

『貳』 (java)jsp頁面ajax發出請求返回json格式數據 中文亂碼問題

你如果沒有使用編碼集過濾器,
就需要手動設置response的編碼集
response.setCharacterEncoding("UTF-8");
這句話要放在這個方法的最前面,就是設置返回頭的前面
如果頁面傳入的參數,在獲取時亂碼,則需要
request.setCharacterEncoding("UTF-8");

『叄』 Java中 用ajax發出請求返回JOSN格式數據,中文亂碼問題

那就是資料庫的問題了,一般在建庫的時候會給資料庫設置編碼格式,像這樣
CREATE
TABLE
d_proct
(
id
int(12)
NOT
NULL
auto_increment,
proct_name
varchar(100)
NOT
NULL,
description
varchar(100)
default
NULL,
PRIMARY
KEY
(id)
)
ENGINE=InnoDB
DEFAULT
CHARSET=utf8;
//主要是這里設置編碼
,如果LZ可以的話,最好資料庫重建一下再試試,應該可以。
再看看別人怎麼說的。

『肆』 java 接受前台json對象,中文亂碼

額怎麼會是亂碼的啦

你的後台要設置response的utf8的啦

你該這樣寫jquery的json的啦

varajaxurl=path+"/ajaxServlet?getMeetingId=getMeetingId";
varpara="&dayinfo="+dayStr;
varmeetingidx=0;
$.ajax(
{
url:ajaxurl,
type:'POST',
dataType:'json',//json,xml
async:false,//非同步默認true
timeout:20000,
data:para,
error:function()
{
},
success:function(jsonOBJ)
{
meetingidx=jsonOBJ.meetingid;
}
});

『伍』 Javaweb返回給Android客戶端json中文字元亂碼

JavaWeb的各種中文亂碼終極解決方法:
一、Servlet輸出亂碼
1.
用servlet.getOutStream位元組流輸出中文,假設要輸出的是String
str
="測試中文"。
1.1
若是本地伺服器與本地客戶端這種就不用說了,直接可以out.write(str.getBytes())可以輸出沒有問題。因為伺服器中用str.getBytes()是採用默認本地的編碼,比如GBK。而瀏覽器也解析時也用本地默認編碼,兩者是統一的,所以沒有問題。
1.1
若伺服器輸出時用了,
out.write(str.getBytes("utf-8"))。而本地默認編碼是GBK時(比例在中國),那麼用瀏覽器打開時就會亂碼。因為伺服器發送過來的是utf-8的1010數據,而客戶端瀏覽器用了gbk來解碼,兩者編碼不統一,肯定是亂碼。當然,你也可以自己將客戶端瀏覽器的編碼手工調用下(IE菜單是:查詢View->編碼encoding->utf-8),但是這種操作很爛,最好由伺服器輸出響應頭告訴,瀏覽器用哪種編碼來解碼。所以要在伺服器的servlet中,增加response.setHeader("content-type","text/html;charset=utf-8"),當然也可直接用簡單的response.setContentType("text/hmtl;charset=utf-8")。兩種的操作是一樣一樣的。
2.
用servlet.getWirter字元流輸出中文,假設要輸出的是String
str
="測試中文亂碼"。
2.1
若寫成out.print(str)輸出時,客戶端瀏覽器顯示的將全是多個?????的字元,代表在編碼表中肯定就找不到相應的字元來顯示。原因是:servlet.getWriter()得到的字元輸出流,默認對字元的輸出是採用ISO-8859-1,而ISO-8859-1肯定是不支持中文的。所以肯定要首先要做的第一件事:是要將伺服器對象輸出字元能支持中文的。其次伺服器向客戶端寫回的響應頭要告訴客戶端是用了哪種編碼表進行編碼的。而實現這兩個需求,只需要response.setContentType("text/hmtl;charset=utf-8")。就搞定了。特別注意:response.setContentType("text/html;charset=utf-8")要放在PrintOut
out
=
response.getWriter()代碼的前面,否則只是有告訴客戶端用什麼碼表編碼的功能,而伺服器端還是用ISO-8859-1編碼了。再特別提示下:在同一Servlet中的doGet或doPost方法中,不能既用response.getOutputStream又用response.getWriter,因為這兩種response的響應輸出位元組流與字元流是沖突的,只能用其一。
二、Servlet文件下載,中文亂碼情況。
關鍵是下載時響應頭
content-disposition中attachment;filename=文件名。這個文件名filename不能是含有中文字元串的,要用URLEncoding編碼進行編碼,才能進行進行http的傳輸。
三、Servlet的response增加addCookie,cookie中value的中文碼問題解決方法。若想將cookie中存放中文的值,必須用Base64編碼後,發給客戶瀏覽器端進入存儲。而下次客戶端瀏覽訪問是帶回來的cookie中的值,是經過Base64編碼的,所以需要用Base64解碼即可。
Base64編碼主要是解決將特殊字元進行重新編碼,編碼成a-b、A-B、0-9、+與/,字元52,10個數字與一個+,一個/
共64個字元。它的原理是將原來3個位元組的內容編碼成4個位元組。主要是取位元組的6位後,在前面補00組成一個新的位元組。所以這樣原來的3個位元組共24,被編碼成4個位元組32位了。
四、獲取請求參數亂碼
GET方式的亂碼:
如<a
href=」/demo5/servlet/RD2?name=中國」>CN</a>,直接用request.getParameter得到的字元串strCN將會亂碼,這也是因為GET方式是用http的url傳過來的默認用iso-8859-1編碼的,所以首先得到的strCn要再用iso-8859-1編碼得到原文後,再進行用utf-8(看具體頁面的charset是什麼utf-8或gbk)進行解碼即可。new
String(strCn.getBytes(「ISO-8859-1」),「UTF-8」);

『陸』 新浪JAVA API返回的JSON數據裡面中文亂碼

這是unicode編碼,不是亂碼,你進行Unicode轉碼就出來了

給你寫個方法轉碼,將unicode傳遞進去返回字元串

	publicStringconvert(StringutfString){
StringBuildersb=newStringBuilder();
inti=-1;
intpos=0;

while((i=utfString.indexOf("\u",pos))!=-1){
sb.append(utfString.substring(pos,i));
if(i+5<utfString.length()){
pos=i+6;
sb.append((char)Integer.parseInt(utfString.substring(i+2,i+6),16));
}
}

returnsb.toString();
}

『柒』 如何解決JSON返回的中文亂碼

  1. @RequestMapping(value="/getphone",proces = "text/plain;charset=utf-8")

  2. /**輸入手機號碼後判斷手機號是否存在*/
    @RequestMapping(value="/getphone",proces = "text/plain;charset=utf-8")
    @ResponseBody
    public String getphone(String phone,HttpSession session){
    Users u=service.selectPhoneService(phone);
    if(u==null){//如果為空,則需要注冊
    String str="請您先注冊,再登錄。";
    session.setAttribute("str", str);
    return "請您先注冊,再登錄。";
    }
    return "true";

『捌』 為什麼java 後台向前台傳json文件會是亂碼呢

後台發送的字元集,和頁面的字元集,不對應

~
~
~

『玖』 json字元串中文亂碼怎麼解決

解決方法:
1、把所有的中文轉為UTF-8編碼(本身是utf8的話無須轉)
$data="JSON中文";
$newData=iconv("GB2312","UTF-8//IGNORE",$data);
2、把中文的urlencode一下
$testJSON=array('name'=>'中文字元串','value'=>'test');
//echo json_encode($testJSON);
foreach ( $testJSON as $key => $value ) {
$testJSON[$key] = urlencode ( $value );
}
3、然後json_encode之後再urldecode一下轉回來
$test_json_str = json_encode ($testJSON )
echo urldecode ($test_json_str);
查看輸出結果為:
{「name」:」中文字元串」,」value」:」test」}

這樣可以很好的解決中文JSON亂碼問題。

閱讀全文

與javajson中文亂碼相關的資料

熱點內容
linux切換root命令 瀏覽:280
c編譯之後界面一閃而過怎麼辦 瀏覽:877
怎麼看ic卡是否加密 瀏覽:722
lgplc編程講座 瀏覽:806
cnc手動編程銑圓 瀏覽:720
cad中幾種命令的意思 瀏覽:324
oraclelinux安裝目錄 瀏覽:133
安卓系統可以安裝編譯器嗎 瀏覽:570
javajson實體類 瀏覽:690
板加密鋼筋是否取代原鋼筋 瀏覽:66
學習編程的思路 瀏覽:230
app易語言post怎麼學 瀏覽:965
地梁的箍筋加密區位置 瀏覽:302
二分法排序程序及編譯結果 瀏覽:679
日語命令形和禁止型 瀏覽:285
安裝軟體用管理員解壓 瀏覽:505
編譯原理代碼塊 瀏覽:400
小孩可以用壓縮面膜嗎 瀏覽:14
錐形倒角怎麼計演算法 瀏覽:883
java合並鏈表 瀏覽:508