首页 > 数据库技术 > 详细

关于<textarea>中的“回车”在后台,mysql数据库,html和<textarea>中的显示问题总结

时间:2015-06-19 02:07:38      阅读:805      评论:0      收藏:0      [点我收藏+]

? ? ? ?当然不得不说这是一个被问烂的问题,可是被问烂那说明这个问题经常出现。度娘的结果却是是五花八门,有采用类似Fckeditor Ckeditor,和百度的 Ueditor. 这样的网页文本格式编辑器插件的,我也用过一个,不过对于小型项目来说太烦,把js的包加载进去启动项目时非常耗时;当然也有很多就用textarea的,还有用divcontentable属性让div可以编辑的。。。不能说错,但用在自己身上总有不对的地方。之后的还得自己慢慢调试!

? ? ?首先解释一下在不同的区域他们现实的不同格式吧。当然本篇先仅讨论“回车”这个字符。

1.在<textarea>中,“回车”(实际意义是换行)这一字符是"\n",如果存在”<br/>“,在其中也显示为”<br/>“,我猜想”\r\n“也显示为换行;

?

2.在mysql数据库中可以存放很多种"回车",但是“回车”代表了不同的含义,一个是换行,一个就是回车本身。如果你将带有换行的文本复制到数据库中,你可以明显的看出是有换行的一个特点的。

,在数据库中换行是\r\n,当然你存的时候是,取出来也是。

?

3.html中“回车“,是换行符”<br/>"

?

4.在td中的title中,如果设置了值,它的换行是“\r\n”,回车是“\n

?

5.最后的重点是java后台:

? ? ? ?在传到后台的时候呢,我用一个输出ASCII码的方法输出了“回车”,然而并没有什么卵用。但是后来我发现不是后台无法输出的问题,而是在前台传递参数时用的是get方式,如果使用post,这些格式是都可以传过来的。再次尝试发现“回车”这个字符在java后台中输出是一个“”+“13”+“10"。对照ASCII码表,由于一些符号是不允许输出的所以“”代表了,"13"代表的是回车符,"10"代表的是换行符。所以显而易见,如果使用post方式,传到后台,存入数据库都没有问题。但是在html中就有问题。

?

解决方法就很明显:

最简单的方式就是用post传递方式,在textarea不会存在问题,但是在html中显示会存在没有换行的问题。

空格也将会只显示一个" ",度娘的结果很少说用post传参,只有一些大神直接说了句,”传递的是什么,后台拿到的就是什么呀“,回答了等于没回答。。。。。

?

我觉得最好的方式是修改格式,存入数据库时,"\n"换行全部替换为"<br/>",这样的好处是,如果有其他人做前台显示时,放在html中就可以直接显示,不会出现格式问题。

修改显示方式也很麻烦,如下:

1.在前台用get方式传递回车时,需要把content内容中的“\n”替换为“<br/>”或者"<br>";

while(-1!=content.indexOf("\n"))
{
   content = content.replace("\n","<br/>");
<}

?2.在前台需要编辑修改content内容时,后台从数据中取后要将相反操作,即将“<br/>”或者"<br>"替换为”\n”:

content =content.replace("<br/>", "\n");

?content同样放在<textarea>中。

3.当然也可以放入<textarea>中显示,但是最好设置<textarea>disabledisable;

4.如果是在html中显示的话,那么就不需要做任何处理,直接获取就可以了,其中的"<br/>"在html中就自然的是换行的行为。

?

?

?

写的比较仓促,也许有很多错误,或者错乱的地方。发现有问题可以留言给我。。。。工作如狗啊。后期还会修改。

?

关于<textarea>中的“回车”在后台,mysql数据库,html和<textarea>中的显示问题总结

原文:http://li370604005.iteye.com/blog/2220568

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!