天天看點

ajax php 中文亂碼,解決ajax+php中文亂碼的方法詳解

解決ajax+php中文亂碼的方法詳解

中文如果用表單送出的話,不會出現亂碼,而用ajax送出就會出現亂碼,這是什麼原因呢?

我的了解是,我在寫源碼的時候,一般用記事本寫,儲存的時候預設用ANSI編碼,源碼中也沒有用“”或“header('Content-Type:text/html;charset=UTF-8');”指定網頁編碼,于是在浏覽器中顯示時它的編碼被認定為“GB2312”。目前台向背景傳遞資料的時候,用表單送出的話,前背景之間用“GB2312”編碼交流,不會出現亂碼;而用ajax送出的話,ajax在前台把要發送的資料編碼從“GB2312”轉換 成“UTF-8”後再傳給背景,然後再把接收到的背景傳回的資料當成是 “UTF-8”而把它轉換 成“GB2312”後顯示在前台頁面上,這樣亂碼就産生了。

如圖:

ajax php 中文亂碼,解決ajax+php中文亂碼的方法詳解

是以要解決亂碼,要在背景進行資料編碼轉換,背景接收到的資料用PHP的mb_convert_encoding("要轉換的資料","gb2312","UTF-8")進行轉換後存儲到資料庫。而背景傳回到前台的中文資料也要用mb_convert_encoding("要傳回的資料","UTF-8","gb2312")轉換後傳回。

時間: 2013-06-07

使用scriptCharset即可解決問題,用contentType就不一定可以了. 複制代碼 代碼如下: $.ajax({       url: testUrl,       dataType: 'jsonp',       type: 'post',       scriptCharset: 'utf-8'     }); 上面的解決方案是最完美的,另外也附上網上的解決方式吧,是用contentType來處理的 複制代碼 代碼如下: jQuery(form).ajaxSubmit({ url

本文執行個體講述了JQuery中Post傳遞中文出現的解決方法,即亂碼ajax與jquery.ajax中文參數post傳遞亂碼處理方法.分享給大家供大家參考.具體分析如下: 問題一: 今天在做項目時,需要用到Ajax,之前我在用GET方式傳遞中文參數時,隻需要在背景程式中設定頁面編碼為GB2312即中文能正常顯示,可是這次由于表單項目較多,不适合用GET方式傳遞,隻能用POST方式,但發現背景程式中設定編碼為GB2312時中文還是顯示的亂碼.經過一番研究問題才最終得到解決. 解決方法: 解決此問題的

JQuery JQuery預設的contentType:application/x-www-form-urlencoded 這才是JQuery正在亂碼的原因,在未指定字元集的時候,是使用ISO-8859-1 ISO8859-1,通常叫做Latin-1.Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字元. JQuery的Ajax根本沒有考慮到國際化的問題,使用了歐洲的字元集,是以才引起了傳遞中文出現亂碼的問題. 而我們的UTF-8則可以解決這一問題. 最終指需要修改JQuery的代碼,顯式

今天遇到一個問題,有關ajax 請求中傳輸中文,遇到亂碼的問題. 如下代碼: function UpdateFolderInfoByCustId(folderId, folderName, custId) { $.ajax({ type: "Post", contentType: "application/x-www-form-urlencoded; charset=utf-8", url: "http://localhost/CRM/Ashx/HandK

今天遇到一個問題,有關ajax請求中傳輸中文,遇到亂碼的問題. 如下代碼: 複制代碼 代碼如下: function UpdateFolderInfoByCustId(folderId, folderName, custId) {    $.ajax({        type: "Post",        contentType: "application/x-www-form-urlencoded; charset=utf-8",        url: &qu

一般Tocant 的url編碼是iso-8859-1(檢視tocat/conf/server.xml 中的Connector 節點沒有寫URIEncoding="xxxxxx") 如下: 複制代碼 代碼如下: 如果

使用jQuery ajax調用的傳回json,中文亂碼問題 Js代碼如下: $.ajax({ url: '/test/testAction.do?method=test', type: 'POST', dataType: 'json', timeout: 5000, async: false, error: function(){ alert('擷取資料失敗!'); }, success: function(json){ jsObject = eval(json); } }); return j

最近在使用JQuery的ajax方法時,要求傳回的資料為json資料,在處理的過程中遇到下面的幾個問題,那就是采用不同的方式來生成json資料的時候,在$.ajax方法中應該是如何來處理的,下面依次來進行說明,由于本人使用的是asp.net,是以處理的頁面都是采用.net來做的!其他的方式應該是相同的吧 一.JSON的一些基礎知識. JSON中對象通過"{}"來辨別,一個"{}"代表一個對象,如{"AreaId":"123"}

序列化中文時之是以亂碼是因為.serialize()調用了encodeURLComponent方法将資料編碼了 解決方法就是進行解碼 原因:.serialize()自動調用了encodeURIComponent方法将資料編碼了 解決方法:調用decodeURIComponent(XXX,true);将資料解碼 例如: var params = jQuery("#formId").serialize(); // http request parameters. params = deco

本文執行個體講述了Android程式設計向伺服器發送請求時出現中文亂碼問題的解決方法.分享給大家供大家參考,具體如下: 我們在andorid項目中通過get方式向伺服器發送請求,其中url參數帶有中文,将會産生亂碼,亂碼産生的原因有兩種: 1. 在送出參數時,沒有對中文參數進行URL編碼 2. Tomcat伺服器預設采用的是IOS8859-1編碼(不支援中文)得到參數值 解決: 1. 進入android項目,在其中要送出參數的時候,對參數的值進行編碼: 複制代碼 代碼如下: URLEncoder.enc

ajax php 中文亂碼,解決ajax+php中文亂碼的方法詳解

當向 MySQL 資料庫插入一條帶有中文的資料形如 insert into employee values(null,'張三','female','1995-10-08','2015-11-12','Sales',2000,'是個好員工!'); 出現亂碼時,可以使用語句 show variables like 'character%'; 來檢視目前資料庫的相關編碼集. 從上圖中可以看到 MySQL 有六處使用了字元集,分别為:client .connection.database.results

一.JSON的一些基礎知識. JSON中對象通過"{}"來辨別,一個"{}"代表一個對象,如{"AreaId":"123"},對象的值是鍵值對的形式(key:value). "[]",辨別數組,數組内部各個資料之間通過","分割,如["AreaId":"123","AreaId":"345"]. 很多情況下是

本文執行個體講述了jQuery ajax方法傳遞中文時出現中文亂碼的解決方法.分享給大家供大家參考,具體如下: 使用jQuery的ajax方法,在傳遞中文時出現中文亂碼,按照以前的方法,修改了jquery檔案中的ajaxSetting也不好使 複制代碼 代碼如下: sajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded;charse

我使用的Springmvc,在controller層傳輸一個json到前台,背景顯示沒問題,中文正常顯示而到了前台 中文就變成了問号. 後來發現,因為在controller中傳回json用了@ResponseBody,而spring源碼中@ResponseBody 的實作類發現其預設的編碼是 iso-8859-1,而項目用的編碼為utf-8,是以傳中文會出現亂碼. 這裡我使用了注解來解決: @RequestMapping(value="/echarts.do", produces =

繼續閱讀