C# StreamReader ReadToEnd()为不同服务器上的txt文件提供不同的结果

C# StreamReader ReadToEnd()为不同服务器上的txt文件提供不同的结果,c#,text-files,streamreader,ftpwebrequest,ftpwebresponse,C#,Text Files,Streamreader,Ftpwebrequest,Ftpwebresponse,我创建了一个小的FTP程序,它只供我自己使用,所以登录详细信息+文件路径都是硬编码的 我有一个按钮,开始下载两个txt文件的过程-这些文件的内容放在两个不同的文本框中 txt文件使用UTF-8编码,如下所示: line1 line2 line3 etc. line1 line2 line3 etc. line1line2line3etc. 我已将这两个文件放在两个不同的服务器上(每台服务器上有两个文件)。在服务器1上,两个文件都已下载并正确显示在文本框中,如下所示: line1 line2

我创建了一个小的FTP程序,它只供我自己使用,所以登录详细信息+文件路径都是硬编码的

我有一个按钮,开始下载两个txt文件的过程-这些文件的内容放在两个不同的文本框中

txt文件使用UTF-8编码,如下所示:

line1
line2
line3
etc.
line1
line2
line3
etc.
line1line2line3etc.
我已将这两个文件放在两个不同的服务器上(每台服务器上有两个文件)。在服务器1上,两个文件都已下载并正确显示在文本框中,如下所示:

line1
line2
line3
etc.
line1
line2
line3
etc.
line1line2line3etc.
在服务器2上,两个文件都会下载并显示在如下文本框中:

line1
line2
line3
etc.
line1
line2
line3
etc.
line1line2line3etc.
我真的不明白为什么-我没有编辑软件(下载过程)也没有编辑文件,当然我只编辑了硬编码的文件路径,因为服务器发生了变化

这是我下载其中一个文件的方式(另一个文件的方式相同,只是名称不同):


有什么帮助吗?

我猜第一台服务器是windows,而第二台是linux。 Windows新行:\r\n Linux新行:\n
在windows中显示不正确我猜第一台服务器是windows,而第二台是linux。 Windows新行:\r\n Linux新行:\n 未在windows中正确显示,请重试

request.UseBinary = false;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(folder + artistsFileNameTxt);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(login, pass);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

tbxArtists.Text = reader.ReadToEnd();

reader.Close();
response.Close();
默认值为true。。。仅当您确定正在处理文本文件时才执行此操作

FTP协议有这个“内置”的处理系统差异的新线

顺便说一句,你必须正确设置此设置时,通过FTP上传太多,否则它可能会变得混乱



试试看

request.UseBinary = false;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(folder + artistsFileNameTxt);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(login, pass);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

tbxArtists.Text = reader.ReadToEnd();

reader.Close();
response.Close();
默认值为true。。。仅当您确定正在处理文本文件时才执行此操作

FTP协议有这个“内置”的处理系统差异的新线

顺便说一句,你必须正确设置此设置时,通过FTP上传太多,否则它可能会变得混乱



试试看

request.UseBinary = false;
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(folder + artistsFileNameTxt);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(login, pass);
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);

tbxArtists.Text = reader.ReadToEnd();

reader.Close();
response.Close();
试一试


服务器之间有什么区别吗?如果从两台服务器下载文件,您会看到什么?你能验证两个下载的版本是否有相同的行尾(可能是CR LF)?@svick:第一个服务器是Windows,不确定另一个。两个下载版本都有相同的行尾:CR LF。服务器之间有什么不同吗?如果从两台服务器下载文件,您会看到什么?你能验证两个下载的版本是否有相同的行尾(可能是CR LF)?@svick:第一个服务器是Windows,不确定另一个。两个下载的版本都有相同的行尾:CR LF。我知道第一个是Windows服务器,不确定另一个。我知道第一个是Windows服务器,不确定另一个。