最通用的Ajax中文亂碼解決方案。

來源:互聯網
上載者:User

網上有很多亂解決方案,比如設定web.config等,感覺都不夠簡單。

感謝小猴告訴我最通用的方法,就是前台js中文編碼escape(),後台解碼Server.UrlDecode()

另外注意,如果網頁進階儲存選項不是utf-8,要改過來。我沒有試過其他編碼,總之此編碼成功。

前台:

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeFile="AjaxLuanMa.aspx.cs" Inherits="testXc_AjaxLuanMa" %>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml" >
  4. <head runat="server">
  5.     <title>Ajax亂碼問題</title>
  6.     <script type="text/javascript">
  7.         //輸入列號,列名,monthNum更新資料庫。
  8.         //如果monthNum為"空",則代表要更新的是暫存資料表。
  9.         //如果monthNum非空,則根據月份和列號,更新模板表。
  10.         function CallServer(colName,col,monthNum) 
  11.         { 
  12.            arg =  escape(colName) + '|' + escape(col) + '|' + escape(monthNum);
  13.            <%= ClientScript.GetCallbackEventReference(this, "arg", "OnCallBack", null) %>;  
  14.         } 
  15.         //回呼函數,提示一下。
  16.         function OnCallBack(result,context) 
  17.         {    
  18.             alert(unescape(result)); 
  19.         } 
  20.     </script>
  21. </head>
  22. <body>
  23.     <form id="form1" runat="server">
  24.     <div>
  25.         <input type="button" value="確定" onclick='CallServer("列名","列號","空");' />
  26.     </div>
  27.     </form>
  28. </body>
  29. </html>

後台:

  1. using System;
  2. using System.Data;
  3. using System.Configuration;
  4. using System.Collections;
  5. using System.Web;
  6. using System.Web.Security;
  7. using System.Web.UI;
  8. using System.Web.UI.WebControls;
  9. using System.Web.UI.WebControls.WebParts;
  10. using System.Web.UI.HtmlControls;
  11. public partial class testXc_AjaxLuanMa : System.Web.UI.Page, System.Web.UI.ICallbackEventHandler
  12. {
  13.     private string result;
  14.     protected void Page_Load(object sender, EventArgs e)
  15.     {
  16.     }
  17.     //引發回調事件處理
  18.     public void RaiseCallbackEvent(string eventArgument)//參數是從前台傳過來的字串。
  19.     {
  20.         string[] args = eventArgument.Split('|');
  21.         //執行商務邏輯
  22.         string arg0 = Server.UrlDecode(args[0]);
  23.         string arg1 = Server.UrlDecode(args[1]);
  24.         string arg2 = Server.UrlDecode(args[2]);
  25.         if (arg2 == "空")
  26.             result = "更新暫存資料表:" + arg0 + "和" + arg1;
  27.         else
  28.             result = "更新模板表:" + arg0 + "和" + arg1;
  29.     }
  30.     //回傳回調結果 
  31.     public string GetCallbackResult()
  32.     {
  33.         return result;
  34.     }
  35. }

end

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.