为什么需要对参数进行编码?相信有过开发的经验的广大程序员都知道,在Web中,若是直接在Url地址上传递参数值,若是中文,或者+等什么的就会出现乱码现象,若是数字或者英文的好象没有什么问题,简言之,传递过来的参数是需要进行编码的。
在这里,也许有人会说,为什么不直接用Server.UrlDecode和Server.UrlEncode这两个来进行编码和解码的操作呢?

的确,这两个服务器端对象很好使用,用起来也很方便,但是,若在客户端是HTML的Input,查询的时候页面是HTML或者其他的,反正不是.NET的,那这个对象还可以用吗?


我现在就遇到这样的问题,查询的东东放在页面,而且那个页面我根本不想让他是.aspx结尾的,哈,感觉HTML的挺不错,而且里面的控件也是用HTML对象的。

下面先来看两个函数,UTF16转UTF8和UTF8转Utf16的。
}
那么为什么需要进行转化呢?因为在JavaScript中获得的中文字符是用UTF16进行编码的,和我们统一的页面标准格式UTF-8可不一样哦,所以需要先进行转化,上面的函数UTF-16到UTF8,然后再进行Base64的编码。

下面是关于Js进行Base64编码和解码的相关操作:
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
var base64DecodeChars = new Array(
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1-1,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
-1-1-1-1-1-1-1-1-1-1-162-1-1-163,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
52535455565758596061-1-1-1-1-1-1,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
-1,  0,  1,  2,  3,  4,  5,  6,  7,  8,  91011121314,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
1516171819202122232425-1-1-1-1-1,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
-1262728293031323334353637383940,
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。    
4142434445464748495051-1-1-1-1-1);
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
//客户端Base64编码
这样传递过去的值就可以在服务器端解码操作了。
下面是C#的Base64加码和解码的相关类:
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。using System;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Data;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Configuration;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web.Security;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web.UI;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web.UI.WebControls;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web.UI.WebControls.WebParts;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
using System.Web.UI.HtmlControls;
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。
namespace CNVP.Base64
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。        var Keyword=base64encode(utf16to8(document.all.Keyword.value));
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。        Keyword
=Keyword.replace("+","%2B");//替换+,否则在服务器解码的时候会出错
服务器端使用以下代码调用:
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。CNVP.Base64.MyBase64 base64 = new CNVP.Base64.MyBase64();
BASE64-客户端(js)加码-服务器端(c#)解码,URL传递“汉字参数”解决方法。            Keyword
=base64.base64Decode(Keyword);
http://www.cnblogs.com/kylinindotnet/archive/2007/06/28/798893.html

相关文章: