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


Posted in Javascript onApril 09, 2007

利用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 相关文章推荐
jquery实现多级下拉菜单的实例代码
Oct 02 Javascript
jQuery封装的tab选项卡插件分享
Jun 16 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
Sep 02 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
jQuery实现页面顶部显示的进度条效果完整实例
Dec 09 Javascript
jQuery ajax分页插件实例代码
Jan 27 Javascript
jQuery简单入门示例之用户校验demo示例
Jul 09 Javascript
jQuery实现圣诞节礼物动画案例解析
Dec 25 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
Dec 27 Javascript
基于rem的移动端响应式适配方案(详解)
Jul 07 Javascript
JS使用canvas中的measureText方法测量字体宽度示例
Feb 02 Javascript
Vue组件模板及组件互相引用代码实例
Mar 11 Javascript
Javascript中eval函数的使用方法与示例
Apr 09 #Javascript
给网站上的广告“加速”显示的方法
Apr 08 #Javascript
超级简单的图片防盗(HTML),好用
Apr 08 #Javascript
filemanage功能中用到的lib.js
Apr 08 #Javascript
filemanage功能中用到的common.js
Apr 08 #Javascript
收集的网上用的ajax之chat.js文件
Apr 08 #Javascript
在页面上点击任一链接时触发一个事件的代码
Apr 07 #Javascript
You might like
几个学习PHP的网址
2006/11/25 PHP
详解PHP内置访问资源的超时时间 time_out file_get_contents read_file
2013/06/03 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
php出租房数据管理及搜索页面
2017/05/23 PHP
让Firefox支持event对象实现代码
2009/11/07 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
javascript如何判断输入的url是否正确
2014/04/11 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
2015/09/10 Javascript
JavaScript 链式结构序列化详解
2016/09/30 Javascript
jquery实现点击页面回到顶部
2016/11/23 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
2018/01/02 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
Vue-Router的使用方法
2018/09/05 Javascript
vue中组件的3种使用方式详解
2019/03/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
python读取文件名并改名字的实例
2019/01/07 Python
Python对象与引用的介绍
2019/01/24 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
python下载的库包存放路径
2020/07/27 Python
浅析Python的命名空间与作用域
2020/11/25 Python
html5实现的便签特效(实战分享)
2013/11/29 HTML / CSS
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
运行时异常与一般异常有何异同?
2014/01/05 面试题
当当网软件测试笔试题
2015/11/24 面试题
应聘医药代表职位求职信
2013/10/21 职场文书
聘任书的写作格式及范文
2014/03/29 职场文书
家长写给孩子的评语
2014/04/18 职场文书
2014年派出所工作总结
2014/11/21 职场文书
电影建党伟业观后感
2015/06/01 职场文书
校运会通讯稿
2015/07/18 职场文书
图片批量处理 - 尺寸、格式、水印等
2022/03/07 杂记