标签:
这个方式其实很多见,特别是使用Json的时候用的比较多,
其实也很简单主要是使用了ToString("x")方法
直接看代码吧
string str = "大家好我是小哲"; string outStr = ""; if (!string.IsNullOrEmpty(str)) { for (int i = 0; i < str.Length; i++) { //将中文字符转为10进制整数,然后转为16进制unicode字符 outStr += "\\u" + ((int)str).ToString("x"); } }
下面方法是怎么样把UNICODE数据转成中文
就比如说像下面这样的数据吧
\u8c01\u80fd\u591f\u7ed9\u6211\u98ce\u9669\u6295\u8d44\u54e6!\u6211\u60f3\u501f\u5341\u4e07\u529e\u4e00\u4e2a\u517b\u6b96\u5382\u3002\u6211\u53ef\u662f\u6709\u5bb6\u5ead\u62c5\u4fdd\u7684\u54e6!#\u4e0a\u7f51\u7231\u901b\u4ec0\u4e48
这里主要是使用的Parse方法
看具体实现吧
private void Form1_Load(object sender, EventArgs e) { string str = @"\u8c01\u80fd\u591f"; str = UniconToString(str); } /// <summary> /// 将Unicon字符串转成汉字String /// </summary> /// <param name="str">Unicon字符串</param> /// <returns>汉字字符串</returns> public string UniconToString(string str) { string outStr = ""; if (!string.IsNullOrEmpty(str)) { string[] strlist = str.Replace("\\", "").Split(‘u‘); try { for (int i = 1; i < strlist.Length; i++) { //将unicode字符转为10进制整数,然后转为char中文字符 outStr += (char)int.Parse(strlist, System.Globalization.NumberStyles.HexNumber); } } catch (FormatException ex) { outStr = ex.Message; } } return outStr; }
在编辑框填入的是 \u7B2C01\u96C6 string temp = txtUrl.Text; Console.WriteLine(Uri.UnescapeDataString("\u7B2C01\u96C6"));只有这个可以解码 Console.WriteLine(Uri.UnescapeDataString(temp)); Console.WriteLine(HttpUtility.UrlDecode(temp, Encoding.UTF8));
标签:
原文地址:http://www.cnblogs.com/testsec/p/5944014.html