在JavaScript中通过URL传递汉字的方法

2016-02-19 10:06 10 1 收藏

有了下面这个在JavaScript中通过URL传递汉字的方法教程,不懂在JavaScript中通过URL传递汉字的方法的也能装懂了,赶紧get起来装逼一下吧!

【 tulaoshi.com - Web开发 】

利用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); 
    } 
}

来源:http://www.tulaoshi.com/n/20160219/1593395.html

延伸阅读
标签: word
在word文档中为汉字添加拼音方法图解   打开需要编辑的word文档。 选定需要编辑的文字。 在页眉找到开始栏,并在该栏找到拼音指南。 单击拼音指南按钮,这时会弹出拼音指南对话框。 在拼音指南对话框中设定对齐方式,字体及大小等,设置成功后单击确定按钮。 回到word文档会发现已经加入了拼...
标签: Web开发
一、利用全局变量 这是最简单的一种方式,比如Google Adsense:  程序代码 script type="text/javascript" google_ad_client = 'pub-3741595817388494'; /script script type="text/javascript" src="http://pagead2. googlesyndication.com/pagead/show_ads.js"/script 缺点是引入了全局变量。其中引入文件的方式还有两个变体...
标签: Web开发
最近做个页面,需要用javascript获取url参数,可发现网上的东西,实在是多了,错误也实在是多啊,真晕,浪费了我不少时间于是,我便总结一下,一个好用的就可以了,先声明下,用正则,是简单,但多浏览器的兼容性,和速度不敢保证了,所以我就用个多浏览器兼容的 代码如下: script language = javascript function reque...
标签: 怀孕
胎教不仅仅能够开发胎儿的脑域让胎儿的智商情商更高,还能将孕妈咪的个人爱好和才能交给孩子,特别是关于音乐方面。 曾经有人问加拿大汉密尔顿交响乐团指挥博利顿·希罗特:“你是怎样对音乐发生兴趣的?”希罗特的回答是:“在出生之前音乐就已经是我的一部分了。”他解释说:“那是我年轻的时候,当我发觉自己有异常的才能时,我感到疑惑...
标签: Web开发
在HTML中接收地址栏中传递的参数方法有如下三种: window.open ("11.htm?aa="+dd);问题就是从11.htm中接收aa的值 解决方案如下: 1.使用 window.location.search 来取得后面的参数 // param 为 参数的名称 function getParameter(param) { var query = window.location.search; var iLen = param.length; var iStar...

经验教程

732

收藏

21
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部