原因是这样的,我的字串里面是\u039C\u0395\u039D\u03A4 Volley ,输出是应该是ΜΕΝΤ Volley,但是我用JSON类拆分以后,发现变成了039C0395039D03A4 Volley,\u不见了

解决方案 »

  1.   

    或者怎么把\u039C\u0395\u039D\u03A4直接转成MENT
      

  2.   

    如果这样string str = "\u039C\u0395\u039D\u03A4 ";
    Console.WriteLine(str);输出的是MENT,但是如果我把\u039C\u0395\u039D\u03A4放到文件中,然后再读出来,再输出,显示的就是\u039C\u0395\u039D\u03A4,我想直接输出MENT
      

  3.   


    http://bbs.csdn.net/topics/390721598
      

  4.   


    http://bbs.csdn.net/topics/390721598
    我用public static string FromUnicodeString( string str)
            {
                //最直接的方法Regex.Unescape(str);
                StringBuilder strResult = new StringBuilder();
                if (!string.IsNullOrEmpty(str))
                {
                    string[] strlist = str.Replace("\\", "").Split('u');
                    try
                    {
                        for (int i = 1; i < strlist.Length; i++)
                        {
                            int charCode = Convert.ToInt32(strlist[i], 16);
                            strResult.Append((char)charCode);
                        }
                    }
                    catch (FormatException ex)
                    {
                        return Regex.Unescape(str);
                    }
                }
                return strResult.ToString();
            }
    可以得到的是这个样子的是前面的那个字符串,我要想转换成普通的MENT,前面那个我也不知道是什么格式的
      

  5.   


    http://bbs.csdn.net/topics/390721598
    后面那个才是正常的输出
      

  6.   

    这已经不是编码的问题了,你的这个 ΜΕΝΤ 是大写的希腊字母,小写是 μεντ,它就不是英文的MENT。
      

  7.   

    我小写的是正常的好吧,键盘里面输出就是MENT,而不是前面那种,不知道怎么转换前面那种,请教
      

  8.   


    int charCode = Convert.ToInt32(strlist[i], 16);这一句M的charCode值是924,正常情况下M的值应该不是924,正常的M输出的ASCII值是77
      

  9.   

    实际上Regex.Unescape(str),执行了这一句就输出了那些希腊字母
      

  10.   

    像这样的特殊字符只能替换,因为你也不知道那些特殊字符到底对应哪些英文字母,类似
    String.RemoveExtraSpace().RemoveHTMLTag().NCR2Text().Replace("(W)", "(w)")..Replace("\\u200C", "").Replace("\\u0421", "C").Replace("\\xED", "i").Replace("\\xC1", "A").Replace("\\xA0", " ").Replace("\\u039C", "M").Replace("\\u0395", "E").Replace("\\u039D", "N").Replace("\\u03A4", "T");有多少就替换多少,只想到这个笨办法