源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-12-10 00:51 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:在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代码:
[u]复制代码[/u] 代码如下:
<%@ 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代码:
[u]复制代码[/u] 代码如下:
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);      }  }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部