vs2005 2009-04-08 10:35:40 閱讀129 評論0 字號:大中小 訂閱
C#中,當我們在文本框(TextBox)中輸入數據時,我們即可換行(多行文本框MultiLine),也可以打出空格。但是,當我們把文本框中的數據讀出,用另一個控件顯示 或者直接用Response.Write顯示時卻無法按我們預期的效果顯示換行與空格:換行以及空格(多個空格也一樣)都以一個空格顯示。因此我們需要一種能轉換空格和換行的方法:
C#中換行用" /r/t "表示,/r、/n的Unicode碼分別爲13、10;表示空格的Unicode碼爲32。
1、換行符 轉換:(有以下三種)
(1) string newline=TextBox1.Text.Replace("/x0D/x0A", "<br />");
(2) string newline=TextBox1.Text.Replace("/r/n", "<br />");
(3) string newline = TextBox1.Text.Replace(Char.ConvertFromUtf32(13)+Char.ConvertFromUtf32(10), "<br />");
//<br />是本人習慣,也可以寫成<br>
2、空格 轉換:(2種)
(1) string newline=TextBox1.Text.Replace("/x20", " ");
(2) string newline=TextBox1.Text.Replace(Char.ConvertFromUtf32(32), " ");
如果您跟我有一樣的習慣,喜歡用<br />的話:如果你換行、空格都要轉換,務請先轉換空格,再轉換換行,否則無法換行顯示。個人認爲:空格轉換把換行轉換成的<br />中的空格也轉換了。
如:
Label1.Text = (TextBox1.Text.Replace( Char.ConvertFromUtf32(32), " ")).Replace(Char.ConvertFromUtf32(13) + Char.ConvertFromUtf32(10), "<br />");
或者
Label1.Text = (TextBox1.Text.Replace(Char.ConvertFromUtf32(13) + Char.ConvertFromUtf32(10), "<br>").Replace( Char.ConvertFromUtf32(32), " "));