一段Big5繁体转换简体GB2312的程序
using System;
using System.IO;
using System.Text;
using System.Runtime.InteropServices;
//Big5繁體轉換簡體的程序
public class EncodeTool
{
?
?[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);
?}
}
總結
以上是生活随笔為你收集整理的一段Big5繁体转换简体GB2312的程序的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iPhone11可以隐藏App吗
- 下一篇: 体验感是什么意思