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

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


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


请问这是怎么回事?
我期望的结果是
ok
ok
...全文
629 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
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”,这样显示的时候就不会有问题了

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧