给你条建议:
1,数据库中永远保存用户输入的没有处理过的信息!
2,如果需要处理,只能在取出来显示的时候做处理。
比如你的问题:
  插入数据库的时候不做任何处理,显示的时候将\n替换成<br>即可。

解决方案 »

  1.   

    插入不需要转换,它保存在数据库里就是换行的,提取时才转换
    <pre>提出的数据</pre>
    或者
    <%//留言板换行处理
        String text=current.getNeeds() ;//从数据库中提出来的数据
        int index=text.indexOf("\r\n") ;
        while(index!=-1)
         {
           text=text.substring(0,index)+"<br/>"+text.substring(index+2);
           index=text.indexOf("\r\n") ;
         }
      %>
          
      

  2.   

    String str;
    str = str.replaceAll("<br>","\n");  //替换回车
    str = str.replaceAll("&nbsp;"," "); //替换空格
      

  3.   

    str = str.replaceAll("<br>","\r\n");  //替换回车
      

  4.   

    str = str.replaceAll("<br>","\r\n");  //替换回车换行
      

  5.   

    谢谢上面的兄台,aku0708(阿酷)兄台,回车已经解决,但是空格转换还是想请教你
      

  6.   

    不一定可以直接判断比如
    你存字符串的变量为String input;(已经有值了)
    <%
    private String escapeHTMLTags(String input){
    if(input == null || input.lenth() == 0){
    return input;
    }
    StringBuffer buf = new StringBuffer(input.length()+6);
    char ch='';
    //替换字符
    for(int i=0;i<input.length();i++){
    ch = input.charAt(i);
    if(ch =='<'){
    buf.append("&lt;");
    }
    else if(ch == '>'){
    buf.append("&gt;");
    }
    }
    return bu.toString();
    }
    如果还有其他非法字符还可以加条件,
    %>
      

  7.   

    str = str.replaceAll("<br>","\r\n"); 
    str = str.replaceAll(" ","nbsp;");
    GoodLuck!
      

  8.   

    不好意思 ,写掉了一个&
    str = str.replaceAll("<br>","\r\n"); 
    str = str.replaceAll(" ","&nbsp;");