FTP. Кодировка файла.

  • Автор темы Автор темы ibred
  • Дата начала Дата начала

ibred

Client
Регистрация
04.04.2015
Сообщения
3 835
Реакции
3 564
Баллы
113
Ситуация такая: генерирую файл с товарами на Битриксе, далее в ZP загружаю его с FTP и читаю. Косяк в том, что кириллица не воспринимается и в переменную попадает:
2016-06-29_13-26-57.png

Так же пробовал менять кодировку файла после загрузки с FTP:
Код:
Развернуть Свернуть Копировать
string data = null;
using (var sr = new StreamReader(filepath))
data = sr.ReadToEnd();
using (var sw = new StreamWriter(filepath, false, Encoding.UTF8))
sw.Write(data);

Но это не помогло.
А вот, если открыть руками файл с этим текстом (например, через Notepad++) и выбрать преобразовать в UTF8 (без BOM) и сохранить, то после этого текст (кирилица) будет отображаться в переменной корректно, но мне нужна полная автоматизация т.к. этот процесс будет выполняться каждые 10 минут.

Собственно, вопрос, как взять текст из файла (см. приложение), чтобы кириллица отображалась корректно?
 

Вложения

Постер грузит файлы по FTP в бинарном режиме, без перекодирования. Изначально файл в какой кодировке генерится?
 
Постер грузит файлы на FTP в бинарном режиме, без перекодирования. Изначально файл в какой кодировке генерится?
Да я понимаю, что ZP здесь не причем (не ломает кодировку), я просто описал весь процесс.
Файл создается в кодировке Windows-1251 (пример файла прикреплен в 1-м посте).
 
Файл создается в кодировке Windows-1251 (пример файла прикреплен в 1-м посте).
Думаю надо просто перекодировать этот текстовый файл в UTF-8 в постере. Подобные сниппеты вроде были на форуме...
 
Думаю надо просто перекодировать этот текстовый файл в UTF-8 в постере. Подобные сниппеты вроде были на форуме...
Vladz, я уже пробовал, в самом первом посте указан код перекодирования. Картина не меняется.
Попробовал и Ваш код, не работает :(
 
Vladz, я уже пробовал, в самом первом посте указан код перекодирования. Картина не меняется.
Попробовал и Ваш код, не работает :(
Надо его прочитать правильно сначала, я так понимаю... Прочитать байты в кодировке Windows-1251, а затем уже перекодировать в UTF-8.
 
Надо его прочитать правильно сначала, я так понимаю... Прочитать байты в кодировке Windows-1251, а затем уже перекодировать в UTF-8.
Как это сделать, подскажите, пожалуйста?
 

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