c#实现javascript中函数escape解码

摘要:
前台在JAVASCRIPT中传输参数。后台接收带有乱码的参数,或者在传递URI时只接收一些值。然后我想起了ESCAPE编码。乱码和URI的问题值得解决。然而,C#没有提供这样的编码和解码方法。在检查了Internet上的数据后,我们知道,当编码除0-255以外的unicode值时,escape输出%u***格式。所以我手动编写了以下方法。让我们分享给大家,希望能为遇到这个问题的人提供一些参考。

最近在开发中传递参数时出现问题乱码问题。前台在JAVASCRIPT传递参数,后台接收到参数时出现乱码的现象或是传递URI时只能接收到一部分值。

于是想起了ESCAPE编码,乱码问题和URI部分值得到解决。但新的问题也出来了。后台接收到值是ESCAPE编码过的值。只能在后台把接收到的值解码后才可以正常使用值。可是C#没有提供这样的编码与解码的方法。只能自己动手来解决这一问题。在网上查下来资料后知道escape是对0-255以外的unicode值进行编码时输出%u****格式。

于是自己手动写下了下面的方法。拿出来分享给大家,希望能给碰到这问题的朋友提供下参考。


       

/// UNICODE 转换成汉字
public static string UNEscape(string str)
{
string outstr = "";
if (!string.IsNullOrEmpty(str))
{
string[] strlist = str.Replace("%", "").Split('u');
try
{
for (int i = 1; i < strlist.Length; i++)
{

//将unicode字符转为10进制整数,然后转为char中文字符
outstr += (char)int.Parse(strlist[i].Substring(0, 4), System.Globalization.NumberStyles.HexNumber);
}

}
catch (FormatException ex)
{
outstr = ex.Message;

}
}
return outstr;
}

免责声明:文章转载自《c#实现javascript中函数escape解码》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇从字符串向DateTime转换时失败《Linux命令行与shell脚本编程大全》第二十五章 创建与数据库、web及电子邮件相关的脚本下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

java环境安装Firefox驱动/IE驱动

如果selenium版本是3.x的,需要使用驱动包解决办法:往项目中添加火狐驱动包,并加载驱动的配置。...

chm 转 txt

CHM格式可以转换为TXT。如果命令行可以在Windows下使用,为了便于描述,以作者的机器为例。E:11文件夹中有一个123.chm文件。按照以下步骤将CHM转换为TXT文件。步骤1:将CHM文件解压缩到TXT1中,启动CMD控制台,并导航到E:11目录,即123.CHM所在的文件夹2。输入命令将其解压缩到TXT3解压缩状态。解压缩后,打开123文件夹,其...

Redis有效时间设置及时间过期处理

本文对redis的过期处理机制做个简单的概述,让大家有个基本的认识。Redis中有个设置时间过期的功能,即对存储在redis数据库中的值可以设置一个过期时间。Expires字典保存了所有键的过期时间,Expires也被称为过期字段。Redis中有三种处理策略:定时删除、惰性删除和定期删除。...

支付宝回调

1//这是支付宝回拨信息2@RequestMapping(“alipay_callback.do”)3@ResponseBody4publicObjectalipayCallback(HttpServletRequestrequest){5Mapparams=Maps.newHashMap();6/getParameterMap(...

MySQL的FLUSH句法

MySQL FLUSHflush_Option[,FLUSH_Option]的FLUSH语法。如果要清除一些MySQL内部缓存,应该使用FLUSH命令。为了执行FLUSH,您必须具有重新加载权限。当连接到MySQL服务器时,对于给定的host_connect_Error,会出现超过最大值的错误。为了安全起见,MySQL将阻止主机进行进一步的连接请求。FLUS...