C#怎么样把字符串"love中国"编码后显示成"love%u4E2D%u56FD"

yzmsb4 2011-05-02 08:29:03
C#怎么样把"love中国"编码后显示成"love%u4E2D%u56FD".我用
System.Web.HttpUtility.UrlEncode("love中国", Encoding.Unicode)
怎么结果会是:
l%00o%00v%00e%00-N%fdV


求个正确方法。谢谢网友了
...全文
108 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
djhama11 2011-06-01
  • 打赏
  • 举报
回复
但是你这个只是部分正确,没有忽略数字和英
yzmsb4 2011-05-02
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 snowdust 的回复:]
C# code
public static string ToUnicode(string str)
{
byte[] bts = Encoding.Unicode.GetBytes(str);
string r = "";
for (int i = 0; i < bts.Length; i += 2) r += "%u" + bts[i + 1].ToStrin……
[/Quote]

网友你好,谢谢你,但是你这个只是部分正确,没有忽略数字和英文字符。。4楼的完全正确。谢谢大家!
Snowdust 2011-05-02
  • 打赏
  • 举报
回复
public static string ToUnicode(string str)
{
byte[] bts = Encoding.Unicode.GetBytes(str);
string r = "";
for (int i = 0; i < bts.Length; i += 2) r += "%u" + bts[i + 1].ToString("X").PadLeft(2, '0') + bts[i].ToString("X").PadLeft(2, '0');
return r;
}

调用:
System.Console.Write(ToUnicode("中国"));

输出:
"%u4E2D%u56FD"
yzmsb4 2011-05-02
  • 打赏
  • 举报
回复
解决了。谢谢楼上的网友!能解释下原因吗
Icedmilk 2011-05-02
  • 打赏
  • 举报
回复
希望暂时解决问题

static string EncodeString(string str)
{
string ret = string.Empty;
foreach (char ch in str)
{
if (ch <= 0xff)
ret += ch;
else
{
byte[] bytes = BitConverter.GetBytes(ch);
ret += string.Format("%u{0:X}{1:X}", bytes[1], bytes[0]);
}
}
return ret;
}
yzmsb4 2011-05-02
  • 打赏
  • 举报
回复
很多网页内容都是 \uXXXX\uXXXX....这种格式的,是如何实现的呢?
yzmsb4 2011-05-02
  • 打赏
  • 举报
回复
[Quote=引用楼主 yzmsb4 的回复:]
C#怎么样把"love中国"编码后显示成"love%u4E2D%u56FD".我用

C# code
System.Web.HttpUtility.UrlEncode("love中国", Encoding.Unicode)
怎么结果会是:

C# code
l%00o%00v%00e%00-N%fdV


求个正确方法。谢谢网友了
[/Quote]

你好。 utf8的结果是三字节的,显示的内容也不是love%u4E2D%u56FD呀?
vrhero 2011-05-02
  • 打赏
  • 举报
回复
Encoding.Unicode改成Encoding.UTF8...

你得先知道Unicode是个字符集,不止一种编码...Encoding.Unicode是Little-Endian UTF-16编码...

110,535

社区成员

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

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

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