2010-05-26 381 views
3

我有一个.NET应用程序正在尝试FTP文件,但我最后每行增加1个字节。我的行分隔符是Environment.NewLine,我相信它转换为\ n \ r。那个字节是多少?有多少个字节是 n r?

回答

1

\ n \ r是2个字节。

2

两个字节。一个用于\ n,一个用于\ r。

7

这是2个字节,但它应该是\r\n\n\r在Windows操作系统

27

这取决于编码。在8位编码和UTF-8中,它是2个字节。在UCS-2或UTF-16中,它是4个字节。在UCS-4或UTF-32中,它是8个字节。

但问题是,你可能是FTP在ASCII模式,而不是图像模式。

+3

+1提的编码 – Amber 2010-05-26 18:54:05

+0

是不是UCS-4和UTF-32一样的东西? – 2013-04-24 01:07:48

+0

@ BlueRaja-DannyPflughoeft:现在。但这并非必须始终如此。 – 2013-05-17 07:41:27

3

在ASCII编码中,\ n是换行符0x0A(十进制10),\ r是回车符0x0D(十进制13)。

正如Jack所说的,正确的顺序是CR-LF,反之亦然。

如果FTP被错误放置并且将文件作为文本发送,则FTP可能会将LF字符添加到流中。

0

FTP软件通常提供二进制和文本传输模式。在文本模式下,换行期间发生换行翻译。这可能是有效的信息,这取决于你的问题是什么以及你问这个问题的原因。

2

要回答这个问题暗示:

要使用二进制传输,而不是在C#中的ASCII传输,使用

FtpWebRequest reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://example.com")); 
reqFTP.UseBinary = true;