我也遇到过这种情况,我输入的时候用的是textarea控件,在输出显示的时候也得用这个控件,把要显示的内容放在控件内就可以保留格式正常显示了,如:
    <textarea style="width: 755" name="BQD066_1"  rows="20" readonly >
    要显示的内容
    </textarea>

解决方案 »

  1.   

    加上这个,就可以了
    sContent是你要显示的内容while (sContent.indexOf("\n")!=-1){ 
    sContent = sContent.substring(0,sContent.indexOf("\n"))+sContent.substring(sContent.indexOf("\n")+1) ; 

    while (sContent.indexOf(" ")!=-1){ 
    sContent = sContent.substring(0,sContent.indexOf(" "))+"&nbsp;"+sContent.substring(sContent.indexOf(" ")+1) ; 
    }
      

  2.   

    我这么解决的
    public class inputchk
    {    public inputchk()
        {
        }    public String getinput(String s)
        {
            String s1 = " ";
            String s2 = "&nbsp";
            String s3 = "\n";
            String s4 = "<br>";
            String s5 = "&gt;";
            String s6 = ">";
            String s7 = "&lt;";
            String s8 = "<";
            String s9 = "'";
            String s10 = "`";
            s = s.replaceAll(s1, s2);
            s = s.replaceAll(s3, s4);
            s = s.replaceAll(s5, s6);
            s = s.replaceAll(s7, s8);
            s = s.replaceAll(s9, s10);
            return s;
        }
    }
      

  3.   

    放在控件内(如textarea)应该就可以
    直接输出到页面,就必须加<br>
    否则不换行的
      

  4.   

    把文本存入数据库的时候就需要替换相应的特殊符号
    楼主对照onizuka5211(简单的人) 写的代码替换吧
    不过纯文本只需要转回车和空格就可以了,其它的不用换
    换完后再往数据库里存
      

  5.   

    <%//留言板换行处理
        String text=从数据库中取的数据;
        int index=text.indexOf("\r\n") ;
        while(index!=-1)
         {
           text=text.substring(0,index)+"<br>"+text.substring(index+2);
           index=text.indexOf("\r\n") ;
         }
      %>
    <%=text%>
    +++++++++++
    好像直接这样也可以
    <pre><%=rs.getString("text")%></pre>
      

  6.   

    是不是写入数据库的时候也要进行特殊字符转换?怎么转换?
    我在输出的页面上是这样写的content +=s + "<br>",但还是不行啊!
      

  7.   

    写入不用进行转换,在显示时用java字符串解析器解析(String str ,"\n")就行了