Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/75: Рейтинг темы: голосов - 75, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 08.08.2016
Сообщений: 10
1

Изменение кодировки .txt файла

01.08.2017, 19:08. Показов 15194. Ответов 5

Author24 — интернет-сервис помощи студентам
Добрый вечер. Недавно начал переходить с Delphi на C#, и столкнулся с проблемой изменения кодировки файла.
Нужно из Windows-1251 перевести в UTF-8, дабы избавить файл от нечитабельных символов.
Можно ли одной строкой это сделать? Или же надо проделывать это с каждой строчке в цикле?
Вот я нацарапал код на delphi, который загружает в стринглист файл и уже работает с каждой из его строк, попутно сохраняя их в другой файл
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program Project1;
 
uses
  System.Classes;
 
{$R *.res}
 
var
  SL1,SL2 : TStringList;
  i : integer;
  str, estr : string;
 
begin
  SL1:=TStringList.Create;
  SL2:=TStringList.Create;
  SL1.LoadFromFile('file.txt');
 
  i:=0;
  While SL1.Count<>i do
  begin
  str:=SL1[i];
  i:=i+1;
  estr:=UTF8Encode(str);
  SL2.Add(estr);
  SL2.SaveToFile('file1.txt');
  end;
 
  SL2.Free;
  SL1.Free;
  Halt
 
end.
Собственно, кто знает как это реализовать на C#?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.08.2017, 19:08
Ответы с готовыми решениями:

Изменение кодировки создаваемого XML файла
Доброго времени суток. Столкнулся с проблемой. Не могу при создании XML файла сменить кодировку. ...

Файл: Переписать текст в t3.txt сначала из файла t1.txt, а потом из файла t2.txt
1) Переписать текст в t3.txt сначала с файла t1.txt, а потом с файла t2.txt 2) Файл t2.txt...

Перевести .txt файл из одной кодировки в другую
Здравствуйте! Мне нужно сменить кодировку в txt файле с UTF-8 на Windows-1251. Что я делаю...

Изменение кодировки
Здравствуйте. Имеется конструкция, которая производит чтение данных либо с текстового файла, либо с...

5
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
01.08.2017, 19:38 2
Лучший ответ Сообщение было отмечено -fill0s- как решение

Решение

Если одной строкой и без цикла, то так:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.IO;
using System.Text;
 
namespace ConsoleApp1
{
   class Program
   {
      static void Main(string[] args)
      {
         using(StreamReader reader = new StreamReader("file.txt", Encoding.GetEncoding(1251)))
         using(StreamWriter writer = new StreamWriter("file1.txt", false, Encoding.UTF8))
         {
            writer.Write(reader.ReadToEnd());
         }
      }
   }
}
1
62 / 62 / 34
Регистрация: 09.07.2017
Сообщений: 475
01.08.2017, 19:51 3
-fill0s-, вот функция для изменения кодировки
C#
1
2
3
4
5
6
7
8
9
10
11
 bool ChangeFileEncoding(string _fileFullName, Encoding _newEncoding)
 {
     try
     {
         File.WriteAllText(_fileFullName, File.ReadAllText(_fileFullName), _newEncoding);
         return true;
     }
     catch { }
 
     return false;
}
1
263 / 224 / 108
Регистрация: 09.12.2015
Сообщений: 652
01.08.2017, 19:59 4
proghelp4you, попробуйте конвертнуть вашей функцией вот этот файл:
Вложения
Тип файла: txt file.txt (128 байт, 41 просмотров)
0
0 / 0 / 0
Регистрация: 08.08.2016
Сообщений: 10
01.08.2017, 20:49  [ТС] 5
Всем спасибо, нашел оптимальное решение для себя, конечно же не без вашей помощи.
0
62 / 62 / 34
Регистрация: 09.07.2017
Сообщений: 475
01.08.2017, 21:37 6
Fleder, пофиксил, спасибо за поправку)
C#
1
2
3
4
5
6
7
8
9
10
11
 bool ChangeFileEncoding(string _fileFullName, Encoding _oldEncoding, Encoding _newEncoding)
 {
     try
     {
         File.WriteAllText(_fileFullName, File.ReadAllText(_fileFullName, _oldEncoding), _newEncoding);
         return true;
     }
     catch { }
 
     return false;
 }
0
01.08.2017, 21:37
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
01.08.2017, 21:37
Помогаю со студенческими работами здесь

Изменение кодировки после извлечения из архива
Есть файл, его имя Спецификация, но на некоторых компах После того как этот файл извлекается из...

Изменение кодировки windows-1251 to ISO-8859-14
Доброе время суток. Нужно поменять кодировку строки : &quot;òèï...

Ввод данных с txt файла, сортировка и запись результата в txt файлы
Доброго времени суток, такое задание, не могу сделать ввод данных из .тхт файла, чтобы потом...

Записать в файл out.txt те числа из файла inp.txt, которые НЕ кратны k
Заполнить файл inp.txt N натуральными числами. Записать в файл out.txt те числа из файла inp.txt...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru