<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • JQuery中Post傳遞中文出現(xiàn)亂碼的解決方法有哪些

    時間:2024-08-17 01:11:13 jQuery 我要投稿
    • 相關(guān)推薦

    JQuery中Post傳遞中文出現(xiàn)亂碼的解決方法有哪些

      問題一:

      今天在做項目時,需要用到Ajax,之前我在用GET方式傳遞中文參數(shù)時,只需要在后臺程序中設(shè)置頁面編碼為GB2312即中文能正常顯示,可是這次由于表單項目較多,不適合用GET方式傳遞,只能用POST方式,但發(fā)現(xiàn)后臺程序中設(shè)置編碼為GB2312時中文還是顯示的亂碼。經(jīng)過一番研究問題才最終得到解決。

      解決方法:

      解決此問題的方法非常簡單,只需要在JS處理參數(shù)時用escape()函數(shù)處理一下即可,而且不需要再用unescape()解碼,這個方法適合POST和GET方式,具體的Ajax代碼這里我不例出,這里給出用escape()函數(shù)處理參數(shù)時的代碼:

      復(fù)制代碼 代碼如下:var htmer ="getcode="+escape(getcode)+"&Content="+escape(Content);

      通常我們在處理Ajax的時候會在這里直接獲取參數(shù)的值,為了使中文參數(shù)不是亂碼,我們只需要用escape()函數(shù)對參數(shù)處理下即可。

      問題二:

      當網(wǎng)站頁面不是utf-8編碼時,ajax提交的中文便會變成亂碼。

      解決方法如下:

      找到j(luò)query.js里的contentType:application/x-www-form-urlencoded,將它改成contentType:application/x-www-form-urlencoded; charset=UTF-8就可以了。

      原因:未指定charset時,jquery使用ISO-8859-1,ISO8859-1,通常叫做Latin-1。Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字符。jquery的ajax根本沒有考慮到國際化的問題,而使用了歐洲的字符集,所以傳遞中文時才會出現(xiàn)亂碼

      我很久以前一直在使用Prototype框架。在.net-GB2312或jsp教程-utf8下都使用過,從來沒遇到有字符編碼的問題。于是將Prototype和JQuery代碼都下載下來打開研究原因。

      不同之處在于JQuery默認的contentType:application/x-www-form-urlencoded

      而Prototype則是contentType:application/x-www-form-urlencoded; charset=UTF-8

      這才是JQuery正在亂碼的原因,在未指定字符集的時候,是使用ISO-8859-1

      ISO8859-1,通常叫做Latin-1。Latin-1包括了書寫所有西方歐洲語言不可缺少的附加字符。

      JQuery的Ajax根本沒有考慮到國際化的問題,使用了歐洲的字符集,所以才引起了傳遞中文出現(xiàn)亂碼的問題。

      而我們的UTF-8則可以解決這一問題。

      最終指需要修改JQuery的代碼,顯式聲明contentType使用utf-8字符集,即可解決GB2312中文傳遞的問題。

      只需要簡單的將JQuery的代碼加以修改,加上charset=UTF-8就可以了,這樣不需要改變改什么web.config或什么在頁面中改編碼什么的了,也不需要用escapc(str)再在服務(wù)端解碼。英文怎么傳遞,中文也怎么傳遞。

      這里給段簡單的代碼測試一下:

      test.html頁面代碼:

      復(fù)制代碼 代碼如下:

      function DoAjax(){

      $.post("AjaxTest.aspx",{txt:$("#tbox1").val()},

      function(data){

      $("#AjaxResponse").text(data);

      }

      );

      }

      AjaxTest

      AjaxTest.aspx處理頁面:

      復(fù)制代碼 代碼如下:<%@ page="" language="C#" contenttype="text/html" responseencoding="gb2312">

      string parms;

      void Page_Load(object sender , EventArgs e)

      {

      parms=Request["txt"];

      if (String.IsNullOrEmpty(parms)){

      Response.Write("Is Null");

      }else{

      Response.Write(parms);

      }

      }

      此外,由于Ajax的默認漢字編碼是utf-8,因此比較保險的方法是保證所涉及的頁面統(tǒng)一編碼格式為utf-8。

    【JQuery中Post傳遞中文出現(xiàn)亂碼的解決方法有哪些】相關(guān)文章:

    excel文件出現(xiàn)亂碼的原因及解決方法07-18

    出現(xiàn)口腔潰瘍的原因有哪些10-07

    命令行的亂碼以及編碼的問題的解決方法08-02

    jQuery中prev()方法用法07-16

    jQuery中replaceAll()方法用法10-15

    jQuery中parent()和siblings()的問題10-16

    企業(yè)所得稅納稅籌劃中存在的問題以及解決方法有哪些?07-24

    關(guān)于Struts中文問題的解決方法01-08

    餐廳經(jīng)營中的營業(yè)成本有哪些07-19

    演講中的控場技巧有哪些10-08

    主站蜘蛛池模板: 日韩精品无码AV成人观看| 国产精品三级国产电影| 青青青国产精品一区二区| wwwvr高清亚洲精品二区| 欧洲精品99毛片免费高清观看 | 人妻少妇精品中文字幕AV| 日韩精品www| 麻豆亚洲AV永久无码精品久久| 精品久久久久久国产三级| 国内精品免费在线观看| 四虎国产成人永久精品免费| 精品福利一区二区三区精品国产第一国产综合精品| 国产精品视频网| 四虎成人精品| 国产AⅤ精品一区二区三区久久| 国产成人久久精品区一区二区| 日韩精品中文字幕无码一区| 欧美成人精品欧美一级乱黄一区二区精品在线 | 无码精品人妻一区二区三区免费| 久久精品国产亚洲沈樵| 精品亚洲国产成AV人片传媒| 亚洲愉拍99热成人精品热久久| 无码国产精品一区二区免费模式 | 88国产精品无码一区二区三区| 国产精品成人精品久久久| 久久精品国产亚洲av影院| 亚洲精品天堂成人片?V在线播放| 久久久久久国产精品免费免费| 国产成人精品久久| 在线人成精品免费视频| 欧美精品亚洲精品日韩1818| 成人午夜视频精品一区| 国产精品三级国产电影| 久久精品无码专区免费青青| 亚洲国产精品无码久久一区二区 | 少妇人妻精品一区二区三区| 欧美国产成人精品一区二区三区| 国产精品午夜福利在线无码| 国产成人精品免高潮在线观看| 91自慰精品亚洲| 亚洲精品欧美综合|