繁体转换简体的程序(c#)


      //big5繁体转换简体的程序
        public class Big5toGB2312
        {
            [DllImport("kernel32.dll", EntryPoint = "LCMapStringA")]
            public static extern int LCMapString(int Locale, int dwMapFlags, byte[] lpSrcStr, int cchSrc, byte[] lpDestStr, int cchDest);

            const int LCMAP_SIMPLIFIED_CHINESE  = 0x02000000;
            const int LCMAP_TRADITIONAL_CHINESE = 0x04000000;

            public static void Main(String[] args)
            {
                if (args.Length < 1)
                {
                    Console.WriteLine("请指定路径!");
                }
                String[] files = Directory.GetFiles(args[0]);
                if (args.Length == 2)
                    files = Directory.GetFiles(args[0], args[1]);
                String dir = args[0] + "//conv";
                if (!Directory.Exists(dir))
                {
                    Directory.CreateDirectory(dir);
                }
                for (int i = 0; i < files.Length; i++)
                {
                    StreamReader sr = new StreamReader(files[i], Encoding.GetEncoding("big5"));
                    String lines = sr.ReadToEnd();
                    sr.Close();
                    lines = ConvertString(lines);
                    //Console.WriteLine(lines);
                    StreamWriter sw = new StreamWriter(dir + "//" + files[i], false, Encoding.GetEncoding("gb2312"));
                    sw.WriteLine(lines);
                    sw.Close();
                    Console.WriteLine("转换  {0}  ok!", files[i]);
                }
            }

            public static String ConvertString(String lines)
            {
                Encoding gb2312 = Encoding.GetEncoding(936);
                byte[] src = gb2312.GetBytes(lines);
                byte[] dest = new byte[src.Length];
                LCMapString(0x0804, LCMAP_SIMPLIFIED_CHINESE, src, -1, dest, src.Length);
                return gb2312.GetString(dest);
            }


        } 

你可能感兴趣的:(String,C#,Class,byte,encoding)