Как изменить кодировку текстовых файлов с помощью кода? Я использую этот код для фактического создания самого файла, но как я могу изменить кодировку (сменить кодировку на UTF-8 без спецификации)
string path = @"E:\Test\Example.txt";
if (!File.Exists(path))
{
File.Create(path);
}
2 ответа
Вы могли бы сделать что-то подобное, но я не уверен, что это действительно имеет смысл, так как кажется, что у вас нет содержимого в вашем файле ...
Если у вас есть контент, замените string.Empty
содержанием
File.WriteAllText(path, string.Empty, Encoding.GetEncoding(<someEncodingCode>));
Редактировать :
File.WriteAllText(path, string.Empty, new UTF8Encoding(false));
Во-первых, за исключением нескольких баз (например, спецификации Unicode, правил кодирования XML) вам понадобится какая-то форма метаданных, чтобы сообщить вам текущую кодировку. Некоторые инструменты предполагают, что они ненадежны (например, различные латинские кодировки в ISO / IEC 8859-1 их не отличить).
Узнав кодировку ввода, передайте экземпляр Encoding
, созданный с именем кодировки, в StreamReader
конструктор, создайте экземпляр StreamWriter
с желаемой выходной кодировкой, а затем перекачивать строки из одной в другую .
(Если вы знаете, что файлы не слишком большие: прочтите все сразу с помощью File.ReadAllTetxt
и напишите с помощью File.WriteAllText
, которые принимают параметры Encoding
.
Похожие вопросы
Новые вопросы
c#
C # (произносится как «резкий») - это высокоуровневый, статически типизированный язык программирования с несколькими парадигмами, разработанный Microsoft. Код C # обычно нацелен на семейство инструментов и сред выполнения Microsoft .NET, включая, среди прочего, .NET Framework, .NET Core и Xamarin. Используйте этот тег для вопросов о коде, написанном на C # или в формальной спецификации C #.