编码错误,输出文件给出的是“”而不是普通字符

本文关键字:字符 错误 输出 文件 编码 | 更新日期: 2023-09-27 18:16:00

我想做一个程序,搜索文件中所需的字符(字母),用c z s等代替它们,并保存文件。然而,在我的尝试中,我得到了一些愚蠢的迹象,这意味着它错误地打开了文件。当我尝试添加encoding.unicode时,它会给我错误(如下所示)。还有一个问题,我如何编写一个程序,通过在。exe文件中拖动文件来打开文件。

错误3最佳重载方法匹配"System.IO.File。Open(字符串、System.IO.FileModeSystem.IO.FileAccess)'有一些无效的参数C:'Users'Vulisha'AppData'Local'TemporaryProjects'ConsoleApplication1'Program.cs 14 59 ConsoleApplication1

错误4参数"3":无法从"System.Text"转换。编码"先。FileAccess"C:'Users'Vulisha'AppData'Local'TemporaryProjects'ConsoleApplication1'Program.cs 14 122 ConsoleApplication1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            using (StreamReader stream = new StreamReader(File.Open(@"C:'Users'Vulisha'Desktop'titl.txt", FileMode.Open)))
            {
                string fileText = stream.ReadToEnd();
                // Do your replacements
                fileText = fileText.Replace(@"č", @"c");
                fileText = fileText.Replace(@"ć", @"c");
                fileText = fileText.Replace(@"š", @"s");
                fileText = fileText.Replace(@"ž", @"z");
                fileText = fileText.Replace(@"đ", @"d");
                fileText = fileText.Replace(@"Č", @"C");
                fileText = fileText.Replace(@"Č", @"C");
                fileText = fileText.Replace(@"Š", @"S");
                fileText = fileText.Replace(@"Ž", @"Z");
                fileText = fileText.Replace(@"Đ", @"D");
                using (StreamWriter writer = new StreamWriter(File.Open(@"titl.txt", FileMode.Create)))
                {
                    // You do a create because the new file will have less characters than the old one
                    writer.Write(fileText);
                }
            }
        }
    }
}

编码错误,输出文件给出的是“”而不是普通字符

您需要更加小心括号的位置。你需要

new StreamWriter(File.Open(@"titl.txt", FileMode.Create), Encoding.Unicode)

但是你写了

new StreamWriter(File.Open(@"titl.txt", FileMode.Create, Encoding.Unicode))

看到区别了吗?