Изменение кодировки текстового файла

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
Здравствуйте всем.
Столкнулся с проблемой - хелп!
Суть следующая. Имеется куча тхт-файлов в кодировке UTF8. Их нужно подготовить к обработке, для чего их необходимо перекодировать в ANSI.
Как это сделать в Zenno?
П.С. Ручками умею - не вариант. Слижком уж их много...
 

alekwuy

Client
Регистрация
06.04.2013
Сообщения
1 631
Благодарностей
461
Баллы
83

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 241
Благодарностей
5 848
Баллы
113
Попробуйте вот такой сниппет на C#
Код:
string ans = File.ReadAllText(project.Variables["Path"].Value, Encoding.GetEncoding(1251));//переменная Path - путь к текстовому файлу
var fromEncodind = Encoding.UTF8;//из какой кодировки
var bytes = fromEncodind.GetBytes(ans);
var toEncoding = Encoding.GetEncoding(1251);//в какую кодировку
ans = toEncoding.GetString(bytes);
File.WriteAllText(project.Variables["Path"].Value, ans);
 
  • Спасибо
Реакции: Chick80

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
нужна.
Попробуйте вот такой сниппет на C#
Код:
string ans = File.ReadAllText(project.Variables["Path"].Value, Encoding.GetEncoding(1251));//переменная Path - путь к текстовому файлу
var fromEncodind = Encoding.UTF8;//из какой кодировки
var bytes = fromEncodind.GetBytes(ans);
var toEncoding = Encoding.GetEncoding(1251);//в какую кодировку
ans = toEncoding.GetString(bytes);
File.WriteAllText(project.Variables["Path"].Value, ans);
Спасибо. Код работает, хотя и несколько некорректно (видимо из-за кодировок) - буду допиливать!
 

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
Всё-таки описанный код никак не поддается корректировке ((
Может кодировка какая-то неправильная ((
Файлы были созданы с помощью Зенки, в блокноте через "Сохранить как --> ANSI" всё отлично сохраняется...
Ну или руки у меня какие-то неправильные :-)
 

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
VladZ, огроменное спасибо! Твой комментарий (толи уже удаленный, толи черновик - так и не понял. В теме его нет а на мыло мне пришел) очень-очень помог!!!
Итак, код получился следующий:
Код:
string ans = File.ReadAllText(project.Variables["file"].Value, Encoding.GetEncoding(1251));
File.WriteAllText(@"z:\text.txt", ans, Encoding.Default);
Не хватало в нем кодировки для файла, в который записывается информация.
 
  • Спасибо
Реакции: VladZen

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 241
Благодарностей
5 848
Баллы
113
VladZ, огроменное спасибо! Твой комментарий (толи уже удаленный, толи черновик - так и не понял. В теме его нет а на мыло мне пришел) очень-очень помог!!!
Итак, код получился следующий:
Код:
string ans = File.ReadAllText(project.Variables["file"].Value, Encoding.GetEncoding(1251));
File.WriteAllText(@"z:\text.txt", ans, Encoding.Default);
Не хватало в нем кодировки для файла, в который записывается информация.
Да, код упростить можно было... только я до конца не разобрался с кодировкой
 

Chick80

Client
Регистрация
04.12.2014
Сообщения
298
Благодарностей
82
Баллы
28
Где-то я вчера ступил... Код сегодня не сработал, переделал немножко - заработало ))

Код:
string ans = File.ReadAllText(project.Variables["file"].Value, Encoding.GetEncoding(1251));

переделал на:

string ans = File.ReadAllText(project.Variables["file"].Value, Encoding.GetEncoding("UTF-8"));
 
Последнее редактирование:
  • Спасибо
Реакции: bookray

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 241
Благодарностей
5 848
Баллы
113
Вот так наиболее корректно:
Код:
string ans = File.ReadAllText(project.Variables["Path1"].Value, Encoding.UTF8);
File.WriteAllText(project.Variables["Path2"].Value, ans, Encoding.ASCII);
Но вообще, если у вас кириллица в тексте, то при перегоне UTF8 в ANSI будут знаки вопроса вместо символов.
 
  • Спасибо
Реакции: bookray

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)