色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

在JavaScript中通過URL傳遞漢字的方法

利用JavaScript通過URL方式向后臺代碼傳值是一種經常用到的手段,但在傳遞漢字時經常會出現字符不全或變成亂碼的問題,其原因是由于客戶端IE瀏覽器的編碼方式為GB2312(簡體中文版WINDOWS的默認設置),而后臺的C#代碼使用utf8編碼(創建WEB工程的默認配置)。
網上有很多方案解決該問題,如將web.config的編碼方式改為GB2312、在客戶端通過escape先編碼再傳,個心體會都不是很理想或有些特殊字符不支持。經過比較我決定使用encodeURIComponent在客戶端進行編碼,再傳值,除了“/”不支持(但實際開發中很少需要傳遞該值,如果真有此請況,再加一層判斷即可。
encodeURIComponent的幫助文檔如下:
encodeURIComponent 方法
將文本字符串編碼為一個統一資源標識符 (URI) 的一個有效組件。
encodeURIComponent( encodedURIString ) 
必選的 encodedURIString 參數代表一個已編碼的 URI 組件。
說明
encodeURIComponent 方法返回一個已編碼的 URI。如果您將編碼結果傳遞給 decodeURIComponent ,那么將返回初始的字符串。因為encodeURIComponent 方法對所有的字符編碼,請注意,如果該字符串代表一個路徑,例如 /folder1/folder2/default.html ,其中的斜杠也將被編碼。這樣一來,當該編碼結果被作為請求發送到 web 服務器時將是無效的。如果字符串中包含不止一個 URI 組件,請使用 encodeURI 方法進行編碼。
要求
版本 5.5
請參閱
decodeURI 方法 | decodeURIComponent 方法
應用于: Global 對象

我做了一個小例子來展現該效果  
Default.ASPx代碼:
復制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.ASPx.cs" Inherits="_Default" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title>無標題頁</title> 
</head> 
<script type="text/Javascript" language="Javascript"> 
    function callURL(Value1, Value2) 
    { 
        document.URL = "Default.ASPx?Value1=" + encodeURIComponent(Value1) + "&Value2=" + encodeURIComponent(Value2); 
    } 
</script> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
        Value1=<input id="Text1" type="text" value="1234567890"/><br /> 
        Value2=<input id="Text2" type="text" value="中華人民共和國"/> 
        <br /> 
        <input id="Button1" type="button" value="提交" onclick="callURL(Text1.value, Text2.value)"/></div> 
    </form> 
</body> 
</html> 


Default.ASPx.cs代碼:
復制代碼 代碼如下:
using System; 
using System.Data; 
using System.Configuration; 
using System.Web; 
using System.Web.Security; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.UI.WebControls.WebParts; 
using System.Web.UI.HtmlControls; 
public partial class _Default : System.Web.UI.Page  

    protected void Page_Load(object sender, EventArgs e) 
    { 
        string tmpValue1 = ""; 
        string tmpValue2 = ""; 
        if (Request.QueryString["Value1"] != null) 
        { 
            tmpValue1 = Request.QueryString["Value1"].ToString(); 
        } 
        if (Request.QueryString["Value2"] != null) 
        { 
            tmpValue2 = Request.QueryString["Value2"].ToString(); 
        } 
        Response.Write("Value1=" + tmpValue1 + "<br />" + "Value2="  + tmpValue2); 
    } 
}

JavaScript技術在JavaScript中通過URL傳遞漢字的方法,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 金乡县| 金华市| 霍山县| 攀枝花市| 洱源县| 武胜县| 钦州市| 清丰县| 彰武县| 古交市| 巴南区| 白沙| 孟州市| 天镇县| 长沙县| 双桥区| 涞源县| 阳曲县| 乐至县| 柯坪县| 安泽县| 井冈山市| 涟源市| 清远市| 万载县| 金湖县| 基隆市| 九寨沟县| 澄江县| 平塘县| 农安县| 商河县| 斗六市| 峡江县| 闸北区| 玉林市| 阿坝县| 双流县| 罗江县| 油尖旺区| 平定县|