用C#写一个UTF-8的.c文件转成gb2313的程序
时间: 2023-07-16 13:12:48 浏览: 137
以下是一个简单的C#程序,可以将UTF-8编码的.c文件转换为gb2312编码:
```csharp
using System;
using System.IO;
using System.Text;
class Program
{
static void Main(string[] args)
{
if (args.Length < 1)
{
Console.WriteLine("Usage: utf8_to_gb2312 <filename>");
return;
}
string inputFile = args[0];
string outputFile = Path.ChangeExtension(inputFile, ".gb2312.c");
try
{
// 读取UTF-8编码的文件
using (StreamReader reader = new StreamReader(inputFile, Encoding.UTF8))
{
// 转换为gb2312编码并写入文件
using (StreamWriter writer = new StreamWriter(outputFile, false, Encoding.GetEncoding("gb2312")))
{
writer.Write(reader.ReadToEnd());
}
}
Console.WriteLine("Conversion successful!");
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
}
}
}
```
该程序使用StreamReader从UTF-8编码的文件中读取文本,然后使用StreamWriter将文本编码为gb2312并写入文件。为此,我们使用GetEncoding方法来获得gb2312编码的实例。请注意,我们将overwrite参数设置为false,这意味着如果输出文件已经存在,它将不会被覆盖。
您可以以以下方式运行此程序:
```
utf8_to_gb2312 myfile.c
```
这将把`myfile.c`文件转换为`myfile.gb2312.c`文件。
阅读全文