Помните, что с потоками вы почти всегда можете обернуть потоки по мере необходимости. Если вы хотите записать содержимое в кодировке UTF-8, оберните поток запроса в StreamWriter
правильной кодировкой:
using (Stream requestStream = request.GetRequestStream())
using (StreamWriter writer = new StreamWriter(requestStream, Encoding.UTF8)) {
writer.Write(fileContent);
}
Поскольку вы говорите, что загружаете в веб-службу, обязательно установите и кодировку контента. Поскольку вы не указали, откуда берется объект request
, я предполагаю, что это обычный HttpWebRequest .
С помощью запроса HttpWebRequest вы сообщаете серверу, что такое кодировка контента, используя свойство ContentType
.
request.ContentType = "text/plain;charset=utf-8";
Тем не менее, как уже упоминали другие, сама FTP-передача также может нарушать ее. Если вы можете, убедитесь, что он передается в двоичном режиме, а не в режиме ASCII.