最近做项目要兼用linux环境下运行,url里面带有中文字符(必须是js的escape)连接,为了解决这个在后台引用了Microsoft.JScrip类库。使用Microsoft.JScript.GlobalObject.escape();在window下运行正常,但在linux下错误,提示:不能导入命名空间。网上找解决方法没有找到,如果有人知道的话给我说下,但是为了尽快解决,只能先写一段代码来暂时代替。只能编码不能解码,现在只能支持url中的中文编码,特殊字符未编码。英文不编码(escape只对中文及特殊字符编码)
// 对字符串里中文进行编码
private string Escape(string str)
{
ArrayList rtnstr = new ArrayList();
string strRex = @"^[\u300a\u300b]|[\u4e00-\u9fa5]|[\uFF00-\uFFEF]";
if (System.Text.RegularExpressions.Regex.IsMatch(str, strRex))
{
//提示的代码在这里写
System.Text.RegularExpressions.Match m = System.Text.RegularExpressions.Regex.Match(str, strRex);
while (m.Success)
{
rtnstr.Add(m.Value);
m = m.NextMatch();
}
}
for (int i = 0; i < rtnstr.Count; i++)
{
string tmp = Escape_Char(rtnstr[i].ToString());
str = str.Replace(rtnstr[i].ToString(), tmp);
}
return str;
}
// 中文编码
private string Escape_Char(string s)
{