2009-05-31 62 views
1

我從一開始就一直在爲ASP.NET編寫代碼,今天我遇到了一些我從未見過的東西。通常,我在C#中查找換行符(例如,當從textarea發佈到ASP.NET中時)預計爲「\ r \ n」。現在我正在使用MVC框架,並且來自textarea的線路文本只有「\ n」換行符。C#和ASP.NET中的換行符有什麼區別? ( r n與 n)

在舊式的TextBox控件中是否存在正常化換行符的事情?由於MVC只是使用表單數據,這是正常的嗎?很想得到一些見解。

回答

6

我已經觀察到,實際的換行順序因瀏覽器而異。

如果你有一個頁面上的多文本區域,並提交頁面,則:

IE返回「\ r \ n」表示換行。 FF在這種情況下返回「\ n」。

我在2006年底的某個地方測試過它,所以它現在可能會有所不同。

我不相信它可能與WebForms與MVC有任何關係。兩者都只是處理提交的輸入並將其返回給你。

如果你想以某種方式處理和將這些字符替換它將使意義,這樣做在長到短的順序:

string userText = form["Text"]; 
userText = userText.Replace ("\r\n", "<br/>").Replace ("\r", "<br/>"); 
+1

只是確認,你的意思是使用「\ n」而不是「\ r」字符串userText = form [「Text」]; (「\ n」,「
」); userText = userText.Replace – 2011-09-08 03:51:25

4

\ n是* nix風格系統上的結尾變體。 \ r \ n是特定於Windows的行結束行爲。

如果您正在檢查換行符並將您的界面暴露給非Windows環境,請確保不僅檢查\ r \ n,而且\ n單獨檢查。

欲瞭解更多背景,請查看Wikipedia上的Newline文章。

+0

@Emil H:感謝您的糾正。當然你是對的,\ n是針對* nix系統,而不是\ r。 – Kosi2801 2009-05-31 21:59:42

相關問題