textarea中的回车字符转化为<br>存入数据库,再取出来显示时出问题了!

zzlw 2006-02-10 08:19:18
我把textarea中的回车字符转化为<br>存入数据库,
在取出来显示时出问题了,如下例:


在textarea中输入如下字符并存入数据库:
ok
ok
取出来显示时为:
ok<br>
ok


请问这是怎么回事?
我期望的结果是
ok
ok
...全文
536 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
zzlw 2006-02-11
搞定了!
我用了如下方法:

存入数据库时不进行转换。
在<p><font size="4"><%=content%></font></p>之前
对content进行一次转换,可以正常显示。
在<td><textarea name="content" rows="9" cols="49"><%=content%></textarea><font color="#FF0000">*</font></td>之前
不对content进行转换,也可以正常显示。

期待更好的方法。
回复
zzlw 2006-02-11
假如不转义,<p><font size="4"><%=content%></font></p>就不能正常显示了,
回复
zzlw 2006-02-11
加上wrap="hard"还是不行,
回复
dvictor 2006-02-11
textarea中的回车需要转义吗??
我们直接存数据库,在数据库中,该字段(text类型)的值就是按行显示的
你可以查看一下你的数据库
回复
tomuno 2006-02-11
<textarea cols="34" name="message" rows="6" wrap="hard" >sss</textarea>
回复
zzlw 2006-02-11
用下面的方法可以正确显示
<p><font size="4"><%=content%></font></p>
用这个方法就出错了
<td><textarea name="content" rows="9" cols="49"><%=content%></textarea><font color="#FF0000">*</font></td>

从textarea中读取后经过以下函数(这个函数也是别人给的)转换,
存入数据库,读出数据时没有进行转换。

public static String TextToHtml(String sourcestr)
{
int strlen;
String restring="", destr = "";
strlen = sourcestr.length();
for (int i=0; i<strlen; i++)
{
char ch=sourcestr.charAt(i);
switch (ch)
{
case '<':
destr = "<";
break;
case '>':
destr = ">";
break;
case '\"':
destr = """;
break;
case '&':
destr = "&";
break;
case 13:
destr = "<br>";
break;
case 32:
destr = " ";
break;
default :
destr = "" + ch;
break;
}
restring = restring + destr;
}
return "" + restring;
}
回复
喝酒吃肉 2006-02-10
不要进行转义试试
回复
cc221417 2006-02-10
看一下网页原码
回复
zzlw 2006-02-10
也不行啊!这样结果是:
ok

ok
回复
smnzg 2006-02-10
在写入数据库的时候是不需要将回车转义为<br>,如果需要转义请转义为“\n”,这样显示的时候就不会有问题了
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2006-02-10 08:19
社区公告
暂无公告