手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >在JavaScript中通过URL传递汉字的方法
在JavaScript中通过URL传递汉字的方法
摘要:利用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代码:

复制代码 代码如下:

<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

<title>无标题页</title>

</head>

<scripttype="text/javascript"language="javascript">

functioncallURL(Value1,Value2)

{

document.URL="Default.aspx?Value1="+encodeURIComponent(Value1)+"&Value2="+encodeURIComponent(Value2);

}

</script>

<body>

<formid="form1"runat="server">

<div>

Value1=<inputid="Text1"type="text"value="1234567890"/><br/>

Value2=<inputid="Text2"type="text"value="中华人民共和国"/>

<br/>

<inputid="Button1"type="button"value="提交"onclick="callURL(Text1.value,Text2.value)"/></div>

</form>

</body>

</html>

Default.aspx.cs代码:

复制代码 代码如下:

usingSystem;

usingSystem.Data;

usingSystem.Configuration;

usingSystem.Web;

usingSystem.Web.Security;

usingSystem.Web.UI;

usingSystem.Web.UI.WebControls;

usingSystem.Web.UI.WebControls.WebParts;

usingSystem.Web.UI.HtmlControls;

publicpartialclass_Default:System.Web.UI.Page

{

protectedvoidPage_Load(objectsender,EventArgse)

{

stringtmpValue1="";

stringtmpValue2="";

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中通过URL传递汉字的方法】相关文章:

JavaScript中的substr()方法使用详解

简介JavaScript中用于处理正切的Math.tan()方法

JavaScript中Cookies的相关使用教程

简介JavaScript中getUTCMonth()方法的使用

JavaScript中的splice()方法使用详解

JavaScript获取并更改input标签name属性的方法

JavaScript通过Date-Mask将日期转换成字符串的方法

删除javascript所创建子节点的方法

JavaScript操作XML文件之XML读取方法

JavaScript中关联原型链属性特性

精品推荐
分类导航