无法通过 FTP 在文本文件中传递希伯来语
Cant Pass Hebrew in text file with FTP
我有一个简单的代码将文本文件传递到 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();
谢谢
我认为您的文件编码不是 1255。
尝试打开编码为UTF-8的文件并重新检查结果。
byte[] fileContents = Encoding.Default.GetBytes(sourceStream.ReadToEnd());
或者您可以使用 WebClient
中可用的方法 Upload,这样您甚至不用碰文件。
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
byte[] responseArray = myWebClient.UploadFile(ftpAddress + fileName, filePath);
我有一个简单的代码将文本文件传递到 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();
谢谢
我认为您的文件编码不是 1255。
尝试打开编码为UTF-8的文件并重新检查结果。
byte[] fileContents = Encoding.Default.GetBytes(sourceStream.ReadToEnd());
或者您可以使用 WebClient
中可用的方法 Upload,这样您甚至不用碰文件。
// Create a new WebClient instance.
WebClient myWebClient = new WebClient();
byte[] responseArray = myWebClient.UploadFile(ftpAddress + fileName, filePath);