JavaScript通过URL传递汉字的实现方法

2019-09-30 06:43:03来源:爱站网 阅读 ()

新老客户大回馈,云服务器低至5折

javascript中如何实现参数的传递?相信这是让开发人员很头痛的问题,因为参数不同实现的页面可能是不一样的,下面就让爱站技术频道小编一起来了解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通过URL传递汉字的实现方法,相信认真看完的朋友都已经知道JavaScript的参数,我们还有更多的专业资讯,如果你想了解更多,记得关注我们的网站哦!?


原文链接:https://js.aizhan.com/develop/JavaScript/9203.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:网站广告“加速”显示的方法

下一篇:js-弹出窗口的变通实现方法