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), " "));
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jame_peng/archive/2009/01/14/3779538.aspx