如何使用UTF-8以外的代码页在C#中写出文本文件?

ade*_*ena 52 c# encoding utf-8 iso-8859-1

我想写出一个文本文件.

而不是默认的UTF-8,我想把它编码为ISO-8859-1编码,这是代码页28591.我不知道如何做到这一点......

我用以下非常简单的代码写出我的文件:

using (StreamWriter sw = File.CreateText(myfilename))
{
    sw.WriteLine("my text...");
    sw.Close();
}
Run Code Online (Sandbox Code Playgroud)

Dav*_*kle 81

using System.IO;
using System.Text;

using (StreamWriter sw = new StreamWriter(File.Open(myfilename, FileMode.Create), Encoding.WhateverYouWant))
{    
    sw.WriteLine("my text...");     
}
Run Code Online (Sandbox Code Playgroud)

获取编码的另一种方法:

using System.IO;
using System.Text;

using (var sw  = new StreamWriter(File.Open(@"c:\myfile.txt", FileMode.CreateNew), Encoding.GetEncoding("iso-8859-1"))) {
    sw.WriteLine("my text...");             
}
Run Code Online (Sandbox Code Playgroud)

查看StreamWriter构造函数的文档.


Joh*_*ell 30

简单!

System.IO.File.WriteAllText(path, text, Encoding.GetEncoding(28591));
Run Code Online (Sandbox Code Playgroud)

  • 它可以更简单:File.WriteAllLines(path,lines,Encoding.UTF8); (3认同)
  • @LevZ:非常棒-我怀疑9年前写答案时还没有它:) (2认同)