HttpUtility.UrlEncode 问题求助大家,谢谢!

csharp20 2011-03-03 02:27:52
System.Web.HttpUtility.UrlEncode("淘宝美食", Encoding.Default ); // 不行

请问如何编码得到下面的

%u6DD8%u5B9D%u7F8E%u98DF


非常感谢!
...全文
120 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
csharp20 2011-03-03
  • 打赏
  • 举报
回复
非常感谢各位大大的积极帮助
wuyq11 2011-03-03
  • 打赏
  • 举报
回复
string s = "中文";
byte[] data = Encoding.Default.GetBytes(s);
StringBuilder builder = new StringBuilder();
foreach (byte b in data)
{
builder.Append(b.ToString("X02") + " ");
}
Console.WriteLine(builder.ToString().TrimEnd());
zhangsifanbaba 2011-03-03
  • 打赏
  • 举报
回复
也可以这样
String a = Microsoft.JScript.GlobalObject.escape("淘宝美食");
MessageBox.Show(a);

需要添加引用 Microsoft.JScript

引用的文件 Microsoft.JScript.dll
孟子E章 2011-03-03
  • 打赏
  • 举报
回复
也可以这样
String a = Microsoft.JScript.GlobalObject.escape("淘宝美食");
MessageBox.Show(a);

需要添加引用 Microsoft.JScript

引用的文件 Microsoft.JScript.dll
孟子E章 2011-03-03
  • 打赏
  • 举报
回复
private string escape(string s)
{
StringBuilder sb = new StringBuilder();
byte[] byteArr = System.Text.Encoding.Unicode.GetBytes(s);

for (int i = 0; i < byteArr.Length; i += 2)
{
sb.Append("%u");
sb.Append(byteArr[i + 1].ToString("X2"));//把字节转换为十六进制的字符串表现形式

sb.Append(byteArr[i].ToString("X2"));
}
return sb.ToString();

}

调用

MessageBox.Show(escape("淘宝美食"));

宝_爸 2011-03-03
  • 打赏
  • 举报
回复
System.Web.HttpUtility.UrlEncode("淘宝美食", Encoding.BigEndianUnicode);好点。

不过我这里得到的结果是:
m%d8%5b%9d%7f%8e%98%df
宝_爸 2011-03-03
  • 打赏
  • 举报
回复
System.Web.HttpUtility.UrlEncode("淘宝美食", Encoding.Unicode);
宝_爸 2011-03-03
  • 打赏
  • 举报
回复
6DD8是"淘"的Unicode编码

110,529

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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