Не могу передать иврит в текстовом файле с FTP - PullRequest
0 голосов
/ 29 августа 2018

У меня есть простой код, который передает текстовый файл на FTP-сервер, текстовый файл - это простой текст «ANSI», формат - Windows-1255, с ивритом внутри.

Когда я передаю файл на FTP-сервер и загружаю файл, символ иврита превращается в знак вопроса (?), Файл сохраняет свой формат («ANSI», Формат - Windows-1255).

Почему мой иврит превращается в знак вопроса? (Я работаю с .net4)

Вот мой код

FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpAddress + fileName);

request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(userName, password);

StreamReader sourceStream = new StreamReader(filePath);

byte[] fileContents = Encoding.GetEncoding(1255).GetBytes(sourceStream.ReadToEnd());

using (Stream requestStream = request.GetRequestStream())
{
    requestStream.Write(fileContents, 0, fileContents.Length);
    requestStream.Close();
}

FtpWebResponse response = (FtpWebResponse)request.GetResponse();
response.Close();

Спасибо

1 Ответ

0 голосов
/ 29 августа 2018

Я думаю, что код вашего файла не 1255.

Попробуйте открыть файл с кодировкой UTF-8 и перепроверить результат.

byte[] fileContents = Encoding.Default.GetBytes(sourceStream.ReadToEnd());

Или вы можете использовать метод Загрузка , доступный в WebClient, так что вы даже не трогаете файл.

// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
byte[] responseArray = myWebClient.UploadFile(ftpAddress + fileName, filePath);
...