|
網(wǎng)上有很多方案解決該問(wèn)題,如將web.config的編碼方式改為GB2312、在客戶端通過(guò)escape先編碼再傳,個(gè)心體會(huì)都不是很理想或有些特殊字符不支持。經(jīng)過(guò)比較我決定使用encodeURIComponent在客戶端進(jìn)行編碼,再傳值,除了“/”不支持(但實(shí)際開(kāi)發(fā)中很少需要傳遞該值,如果真有此請(qǐng)況,再加一層判斷即可。
encodeURIComponent的幫助文檔如下:
encodeURIComponent 方法
將文本字符串編碼為一個(gè)統(tǒng)一資源標(biāo)識(shí)符 (URI) 的一個(gè)有效組件。
encodeURIComponent( encodedURIString )
必選的 encodedURIString 參數(shù)代表一個(gè)已編碼的 URI 組件。
說(shuō)明
encodeURIComponent 方法返回一個(gè)已編碼的 URI。如果您將編碼結(jié)果傳遞給 decodeURIComponent ,那么將返回初始的字符串。因?yàn)閑ncodeURIComponent 方法對(duì)所有的字符編碼,請(qǐng)注意,如果該字符串代表一個(gè)路徑,例如 /folder1/folder2/default.html ,其中的斜杠也將被編碼。這樣一來(lái),當(dāng)該編碼結(jié)果被作為請(qǐng)求發(fā)送到 web 服務(wù)器時(shí)將是無(wú)效的。如果字符串中包含不止一個(gè) URI 組件,請(qǐng)使用 encodeURI 方法進(jìn)行編碼。
要求
版本 5.5
請(qǐng)參閱
decodeURI 方法 | decodeURIComponent 方法
應(yīng)用于: Global 對(duì)象
我做了一個(gè)小例子來(lái)展現(xiàn)該效果
Default.ASPx代碼:
復(fù)制代碼 代碼如下:
<%@ 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>無(wú)標(biāo)題頁(yè)</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="中華人民共和國(guó)"/>
<br />
<input id="Button1" type="button" value="提交" onclick="callURL(Text1.value, Text2.value)"/></div>
</form>
</body>
</html>
Default.ASPx.cs代碼:
復(fù)制代碼 代碼如下:
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技術(shù):在JavaScript中通過(guò)URL傳遞漢字的方法,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。