【转】 C#中将Big5繁体转换简体GB2312的代码

using  system;
using  system.IO;
using  system.Text;
using  system.Runtime.InteropServices; 
// big5繁体转换简体的程序
public   class  EncodeTool
ExpandedBlockStart.gifContractedBlock.gif
{
 
 [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)
ExpandedSubBlockStart.gifContractedSubBlock.gif    
{
  
if (args.Length<1)
ExpandedSubBlockStart.gifContractedSubBlock.gif  
{
   Console.WriteLine(
"请指定路径!");
  }

  String[] files
=Directory.GetFiles(args[0]);
  
if(args.Length==2)
   files
=Directory.GetFiles(args[0],args[1]);
  String dir
=args[0]+"\\conv";
ExpandedSubBlockStart.gifContractedSubBlock.gif  
if(!Directory.Exists(dir)){
   Directory.CreateDirectory(dir);
  }

  
for(int i=0;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]);
  }

 }


ExpandedBlockStart.gifContractedBlock.gif 
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);
 }

}

转载于:https://www.cnblogs.com/djbone/archive/2008/09/17/1292460.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值