数据库中存的换行是\r\n,读取到UTF-8编码的JSP 页面上以后,没有换行,请问高手如何转换

解决方案 »

  1.   

    在jsp页面显示之前,要进行一下字符转换,将所有\r\n转换成<br>,如下:String result = result.replaceAll("\r\n", "<br>");然后显示result。
      

  2.   

    数据库mysql
    use test;
    create table test(value varchar(10));
    insert into test values('aaaa\\r\\nbbbbbb');
    select * from test;
    显示结果如下:
    aaaa\r\nbbbbbb
    在java中我们怎么做呢才能达到换行的效果呢?
    ok,look at here。
    这里我们采用正则的方式替换它,替换什么,提示:
    \\r修正为\r,\\n修正为\n。
    剩下的代码部分我做个demo,你看看合适不合适。
    String str = "aaaa\\r\\nbbbbbb";
    System.out.println(str);
    str=str.replace("\\r", "\r");
    str=str.replace("\\n", "\n");
    System.out.println(str);
    看看我的控制台输出:
    aaaa\r\nbbbbbb
    aaaa
    bbbbbb
    好了,回车换行搞定。给分吧~~~嘻嘻
      

  3.   

    页面上的换行请采用<br/>来替换\\r\\n或者是\r\n。不然你看不到效果的。
    你直接在代码里使用\r\n的话,那么你的换行是源代码里格式的换行,而不是页面格式的换行。
    html换行请使用html的换行标签,用<br/>这样的标签吧。
      

  4.   

    要么数据库中直接插入<br/>标签,要么替换正则替换它。正则方式采用我上面的方式给。
    如果插入数据的时候用的是\r\n,那么替换方法如下:
    String str = "aaaa\r\nbbbbbb";
    System.out.println(str);
    str=str.replace("\r\n", "<br/>");
    System.out.println(str);
    如果插入的是\\r\\n,替换方法如下:
    String str = "aaaa\\r\\nbbbbbb";
    System.out.println(str);
    str=str.replace("\\r\\n", "<br/>");
    System.out.println(str);
      

  5.   

    换行可以用<br><p><div><span>多种方式来实现,也可以用css来控制,\r\n应该在ascii码中就有定义,UTF8中表示ascii码应该和ascii码是一样的,所以不用转换。你打开页面源代码就会发现,其实你有\r,\n的地方就应该有换行。