简单的字符串转换问题ASP.net(C#),100分

kivetja 2010-02-01 07:36:36
原因:
在javascript(客户端)里,字符串 "我没有CNY100万" 通过 encodeURIComponent() 函数可以得到:
 %E6%88%91%E6%B2%A1%E6%9C%89CNY100%E4%B8%87

里面的 CNY100 并没有被 编码,但通过一些方法可以做到完全编码:
 %E6%88%91%E6%B2%A1%E6%9C%89%43%4E%59%31%30%30%E4%B8%87

在ASP.net(c#)(服务器端)里可以通过 Regex.Unescape() 还原。

问:

我们现在要把字事倒过来做, 用 ASP.net(c#) 编码,然后用 javascript 还原

用什么 函数或方法 可以把
 "我没有CNY100万"

这样的字串转为
 %E6%88%91%E6%B2%A1%E6%9C%89%43%4E%59%31%30%30%E4%B8%87

然后传给javascript处理
...全文
110 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
vip__888 2010-02-01
  • 打赏
  • 举报
回复
up
kivetja 2010-02-01
  • 打赏
  • 举报
回复
完全搞掂
public string Encode(string s)
{
if(s=="")
return "";
return "%" + BitConverter.ToString(Encoding.UTF8.GetBytes(s)).Replace('-', '%');
}
wuyi8808 2010-02-01
  • 打赏
  • 举报
回复
using System;
using System.Text;

class Program
{
static void Main()
{
string s = "我没有CNY100万";
Console.WriteLine(Encode(s));
}

static string Encode(string s)
{
return "%" + BitConverter.ToString(Encoding.UTF8.GetBytes(s)).Replace('-', '%');
}
}

/* 输出:
%E6%88%91%E6%B2%A1%E6%9C%89%43%4E%59%31%30%30%E4%B8%87
*/
kivetja 2010-02-01
  • 打赏
  • 举报
回复
caozhy 的方法 我还不知道怎么用啊?
wuyq11 2010-02-01
  • 打赏
  • 举报
回复
HttpUtility.UrlEncode("")
escape("")
encodeURIComponent
kivetja 2010-02-01
  • 打赏
  • 举报
回复
上面的,好像可行,不过我要是的是完全转换,不是转一半,

剩下的字母和数字还有个别符号 也要转成 %xx (百分号)
threenewbee 2010-02-01
  • 打赏
  • 举报
回复
BYTE toHex(const BYTE &x)

{
return x>9?x+55:x+48;
}

UrlEncode(LPBYTE in,LPBYTE out)
{
if(out)
{
while (*in)
{
if(isalnum(*in))
*out++ = *in;
else
if(isspace(*in))
*out++ = '+';
else
{
*out++ = '%';
*out++ = toHex(*in>>4);
*out++ = toHex(*in%16);
}
in++;
}
*out = '\0';
}
return 1;

}
seesea125 2010-02-01
  • 打赏
  • 举报
回复
Server.URLEncode()搞定
sohighthesky 2010-02-01
  • 打赏
  • 举报
回复
Microsoft.JScript.GlobalObject.encodeURIComponent
threenewbee 2010-02-01
  • 打赏
  • 举报
回复
Server.URLEncode()

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧