日期:2014-05-18  浏览次数:20780 次

关于c#的unicode转换问题
比如“京东商城”我如何把它变成 “\u4eac\u4e1c\u5546\u57ce”的格式啊

我目前用的办法是
byte[] b = System.Text.Encoding.Unicode.GetBytes(s);

  string str = "";
  for (int i = 0; i < b.Length; i = i + 2)
  {
  str += "\\u" + string.Format("%{0:X}", b[i + 1]) + string.Format("%{0:X}", b[i]);
  }
  str = str.Replace("%", "").ToLower();
  return str;

但实际输出的是\\u 而不是期望的\u

求高手

------解决方案--------------------
C# code
 class Program
    {
        static void Main(string[] args)
        {
            string tt = ttemp();
            Console.WriteLine(tt);
           
        }

        private static string ttemp()
        {
            byte[] b = System.Text.Encoding.Unicode.GetBytes("京东商城");
            string str = "";
            for (int i = 0; i < b.Length; i = i + 2)
            {
                str += "\\u" + string.Format("%{0:X}", b[i + 1]) + string.Format("%{0:X}", b[i]);
            }
            str = str.Replace("%", "").ToLower();
            //Console.WriteLine(str);
            return str;
        }
    }

------解决方案--------------------
string sh = HttpUtility.UrlEncodeUnicode("京东商城").Replace(@"%u",@"\u");
------解决方案--------------------
输出结果没有问题啊
\u4eac\u4e1c\u5546\u57ce
------解决方案--------------------
探讨

引用:
用一下我写的

不行,也是\\U
我其实是在输出一个unicode的json格式字符串

现在客户端收到的是
{"errno":"0","data":{"resource_detail":{"id":"129","name":"\\u4eac\\u4e1c\\u5546\\u57ce","res_type":"1"}}}

而期……

------解决方案--------------------
示例代码:
C# code
var source = "京东商城";
var result = source.Aggregate(string.Empty,
                                                 (current, c) => current + string.Format("{0}{1:x4}", @"\u", (int) c));

Console.WriteLine(result);