C#怎么样把"love中国"编码后显示成"love%u4E2D%u56FD".我用 System.Web.HttpUtility.UrlEncode("love中国", Encoding.Unicode)怎么结果会是:l%00o%00v%00e%00-N%fdV求个正确方法。谢谢网友了

解决方案 »

  1.   

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

  2.   


    你好。 utf8的结果是三字节的,显示的内容也不是love%u4E2D%u56FD呀?
      

  3.   

    很多网页内容都是 \uXXXX\uXXXX....这种格式的,是如何实现的呢?
      

  4.   

    希望暂时解决问题        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;
            }
      

  5.   

    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"