采用CodeDom方法解决Unicode转中文(gb)的方法

在采用reflector反编译代码的时候,字符串都被转换成unicode形式保存
从网上查了一些资料,基本都是采用内码的办法进行转换
其实可以采用很简单的办法解决,就是通过CodeDom的方法
代码如下:

 1             CodeDomProvider prov  =   new  CSharpCodeProvider();
 2             CompilerParameters para  =   new  CompilerParameters();
 6             para.GenerateInMemory  =   true ;
 7             para.TreatWarningsAsErrors  =   false ;
 8              string  code  =
 9                  " namespace My{  "   +
10                  " public class Code  "   +
11                  " { "   +
12                  "    public string GetString() "   +
13                  "    { "   +
14                  "        string strCode = \ ""  + textBox1.Text +  " \ " ; "   + //形式如:\u8bf7\u5148\u5b9a
15                  "             return strCode; "   +
16                  "    } "   +
17                  " }} " ;
19             CompilerResults cr  =  prov.CompileAssemblyFromSource(para, code);
20              foreach  ( string  s  in  cr.Output)  {
21                System.Diagnostics.Debug.WriteLine(s);
22            }

23             
24             Assembly assembly  =  cr.CompiledAssembly;
25             Type type  =  assembly.GetType( " My.Code " );
26              object  obj  =  assembly.CreateInstance( " My.Code " );
27              string  ret  =  type.InvokeMember( " GetString " , BindingFlags.InvokeMethod,  null , obj,  null ).ToString();


你可能感兴趣的:(unicode)