2010-05-26 378 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;