`

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

 
阅读更多

       当然不得不说这是一个被问烂的问题,可是被问烂那说明这个问题经常出现。度娘的结果却是是五花八门,有采用类似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传参,只有一些大神直接说了句,”传递的是什么,后台拿到的就是什么呀“,回答了等于没回答。。。。。PS:后补部分:之后发现,只要在html中显示的地方,只要将数据库中的数据直接放在<pre></pre>标签中。即可显示正常。

pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。

<pre> 标签的一个常见应用就是用来表示计算机的源代码。

提示:制表符(tab)在 <pre> 标签定义的块当中可以起到应有的作用,每个制表符占据 8 个字符的位置。但是我们不推荐使用它,因为在不同的浏览器中,Tab 的实现各不相同。在用 <pre> 标签格式化的文档段中使用空格,可以确保文本正确的水平位置。

提示:如果您希望使用 <pre> 标签来定义计算机源代码,比如 HTML 源代码,请使用符号实体来表示特殊字符,比如 "&lt;" 代表 "<","&gt;" 代表 ">","&amp;" 代表 "&"。

 或者采用评论区的网友给的:在显示时,给显示数据套上一个<div>,然后设置style的white-space: pre-wrap。效果类似与上述的pre标签,非常感谢。

这里再补充一下,由于回车是一个换行的标识,那么数据在标签中也必须应该有自动换行的效果,而不会撑爆一个div或者其他容器,这里就要对容器设置style中的width:600px;,同时还有WORD-WRAP: break-word;这个属性值,那么数据到达宽度长度时就会自动换行,测试时建议不要使用连续的字母和数字,因为没有空格,就被认定为是一个单词,这样 换行就会出现 提前换行的效果。这也是我们不愿意看到的。

我觉得最好的方式是修改格式,存入数据库时,"\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中就自然的是换行的行为。

 

 

 

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

 

11
5
分享到:
评论
2 楼 li370604005 2015-06-24  
酷的飞上天空 写道
富文本编辑器里面的换号不错考虑,提交到后台基本不是br就是p
仅使用textarea的情况下,在显示的界面给父级div设置一个熟悉就解决了,
属性如下:
white-space: pre-wrap

我没用div直接写在了<pre>标签里。今天同事在网上找了CSS,就是你说的这个方法,但是前提是让我把存在数据库中的<br>都换成了<p><p/>
1 楼 酷的飞上天空 2015-06-19  
富文本编辑器里面的换号不错考虑,提交到后台基本不是br就是p
仅使用textarea的情况下,在显示的界面给父级div设置一个熟悉就解决了,
属性如下:
white-space: pre-wrap

相关推荐

    把富文本的回车转为br标签

    编辑框中可以识别的字符,在普通的标签里面没办法识别到,所以要转换成可以识别的&lt;br&gt; 方法1 string.replace(/(rn|n|r)/gm, ) 然后再用v-html=转换之后的string,就可以正常展示换行了 方法2 第二种方

    HTML5&CSS3网页制作:textarea元素.pptx

    &lt;textarea cols="每行中的字符数" rows="显示的行数"&gt; 文本内容 &lt;/textarea&gt; 描述 &lt;textarea&gt; 标记定义多行的文本输入控件。有两个比较重要的属性cols和rows, 语法格式 说明 属性 值 描述 cols number 规定文本区内...

    Html5中文手册(程序员必备手册)

    83、&lt;textarea&gt; 定义 textarea。 84、&lt;tfoot&gt; 定义表格的脚注。 85、&lt;th&gt; 定义表头。 86、&lt;thead&gt; 定义表头。 87、&lt;time&gt; 定义日期/时间。 88、&lt;title&gt; 定义文档的标题。 89、&lt;tr&gt; 定义表格行。 90、&lt;ul&gt; 定义无序...

    使用HTML开发商业网站-表单控件-textarea课件.pptx

    &lt;textarea cols="每行中的字符数" rows="显示的行数"&gt; 文本内容 &lt;/textarea&gt; 表单控件 textarea可选属性 属性 属性值 描述 name 由用户自定义 控件的名称 readonly readonly 该控件内容为只读(不能编辑修改) ...

    追米网在线投稿系统

    追米网在线投稿系统&lt;br&gt;&lt;br&gt;程序很简单&lt;br&gt;版权不究&lt;br&gt;管理密码:admin admin888&lt;br&gt;其实editarticle.asp也是一个文章修改文件&lt;br&gt;,您找到&lt;%=rs("content")%&gt;替换成下面代码就可以:&lt;br&gt;&lt;br&gt;&lt;textarea name=...

    TinyMCE 4.0b汉化版

    引入这两个文件:&lt;script type="text/javascript" src="tinymce\js\tinymce\tinymce.min.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="tinymce\js\tinymce\...&lt;li&gt;&lt;textarea&gt;Your content here.&lt;/textarea&gt;&lt;/li&gt;

    FCKeditor RedFishX配置版

    &lt;br&gt; }&lt;br&gt; &lt;/script&gt;&lt;br&gt;&lt;/head&gt;&lt;br&gt;&lt;body&gt;&lt;br&gt; &lt;form id="dataform" method="post" action="target.aspx"&gt;&lt;br&gt; &lt;textarea id="content"&gt;&lt;/textarea&gt;&lt;br&gt; &lt;/form&gt;&lt;br&gt;&lt;/body&gt;&lt;br&gt;&lt;/html&gt;&lt;br&gt;&lt;br&gt;说明:&lt;br&gt;&lt;br&gt;...

    FCKeditor RedFishX配置版 1.1

    &lt;br&gt;}&lt;br&gt;&lt;/script&gt;&lt;br&gt;&lt;/head&gt;&lt;br&gt;&lt;body&gt;&lt;br&gt;&lt;form id="dataform" method="post" action="target.aspx"&gt;&lt;br&gt;&lt;textarea id="content"&gt;&lt;/textarea&gt;&lt;br&gt;&lt;/form&gt;&lt;br&gt;&lt;/body&gt;&lt;br&gt;&lt;/html&gt;&lt;br&gt;&lt;br&gt;说明:&lt;br&gt;&lt;br&gt;&lt;script ...

    HTML_CSS学习笔记.docx

    5.3. &lt;a&gt;标签 target属性:在窗口中打开链接 17 5.4. &lt;table&gt;家族:为网页添加表格 18 5.5. &lt;thead&gt;、&lt;tbody&gt;、&lt;tfoot&gt;标签:定义表格的表头、表身、表尾 19 6. HTML5表单标签 20 6.1. &lt;form&gt;标签:创建表单,与用户...

    ckeditor3.4.1+ckfinder2.0.1(asp.net整合版)

    1、在页面&lt;head&gt;中引入ckeditor核心文件ckeditor.js &lt;script type="text/javascript" src="ckeditor/ckeditor.js"&gt;&lt;/script&gt; &lt;script type="text/javascript" src="ckfinder/ckfinder.js"&gt;&lt;/script&gt; 2、在使用...

    dlog破废墟修改版 v1.2

    修正当UBB模式日志中含有textarea时的错位显示问题&lt;br&gt; 7. 增加评论搜索功能&lt;br&gt; 8. 加入代码高亮显示 高亮脚本修改自webcoding&lt;br&gt; 9. 修正样式设置中的截断显示不读取设置值的遗漏&lt;br&gt; 10. 修正翻页的小BUG 来自...

    Javascript中最常用的55个经典技巧

    53、回车键换行 把如下代码加入&lt;body&gt;区域中 &lt;script type="text/javascript"&gt; function handleEnter (field, event) { var keyCode = event.keyCode ? event.keyCode : event.which ?...&lt;textarea&gt;回车换行

    表单与javascript

    &lt;TEXTAREA NAME="comment" rows=4 cols=30 &gt;请输入附注&lt;/TEXTAREA&gt;&lt;/p&gt; &lt;P ALIGN="CENTER"&gt; &lt;INPUT TYPE="submit" value="提交此表单" &gt; &nbsp;&lt;INPUT TYPE="reset" value="重置"&gt;&lt;/P&gt; &lt;/FORM&gt;&lt;/BODY&gt; &lt;/html&gt;

    【JavaScript源代码】如何在vue中使用kindeditor富文本编辑器.docx

     第一步,下载依赖 yarn add kindeditor 第二步,建立kindeditor.vue组件 &lt;template&gt; &lt;div class="kindeditor"&gt; &lt;textarea :id="id" name="content" v-model="outContent"&gt;&lt;/textarea&gt; &lt;/div&gt; &lt;/template&gt; ...

    网站被挂马,批量清除木马工具.rar

    &lt;div&gt;&lt;br /&gt;被替换过文件路径列表↓&lt;textarea id="txtreple" style="height:300px;overflow:auto"&gt;诚信自助链 http://www.fillseo.com&lt;/textarea&gt; &lt;/div&gt; &lt;div id="copyr"&gt;&lt;br /&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;

    php分页123456

    &gt;&lt;/textarea&gt;&lt;/td&gt; &lt;td align="center"&gt;运输路线:&lt;/td&gt; &lt;td &gt;&lt;textarea name="car_road" cols="30" rows="5" id="car_road"&gt;&lt;?php echo $yih[carluxian]?&gt;&lt;/textarea&gt;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;&nbsp;&lt;/td&gt; &lt;td ...

    HTML里面Textarea换行问题总结

    问题解决1: 一开始是提交数据的时候格式是AAA&lt;BR&gt;BBB,但是这是显示换行,其实在TextArea里面并不是真正按行存放的,因为这个时候再提交给另外一个TextArea的时候就是显示AAABBB,而不是换行显示了,因此仅仅是显示...

    Vue实现动态显示textarea剩余字数

    Vue实现动态显示textarea剩余文字数量,具体内容如下 这里我们假设允许用户输入的最多数量为200个 html代码如下: &lt;textarea maxlength="200" @input="descInput" v-model="desc" /&gt; &lt;span&gt;{{remnant}}/200...

    TinyMCE 3.0

    &lt;br&gt;&lt;br&gt;功能特点:&lt;br&gt;&lt;br&gt;两行代码轻松集成&lt;br&gt;可以通过主题和插件实现自定义&lt;br&gt;可以自定义XHTNL 1.0输出,屏蔽非法的元素&lt;br&gt;支持国际语言&lt;br&gt;多浏览器支持,目前支持 Mozilla, MSIE, FireFox, Opera and Safari...

    cuteEditor6.0

    You can also create your own policy files that define arbitrary permission sets.&lt;br/&gt;&lt;br/&gt;Comparison of the sample security policy file &lt;br/&gt;&lt;br/&gt; &lt;br/&gt;Permissions/Resource Setting Admin Default ...

Global site tag (gtag.js) - Google Analytics