我有一个MVC3应用程序,有一个详细信息页面。作为其中的一部分,我有一个描述(从db检索),其中有空格和新行。当它被渲染时,新的行和空格被html忽略。我想对这些空格和新行进行编码,这样它们就不会被忽略。

你是怎么做到的?

我尝试了HTML。编码,但它最终显示编码(甚至不是在空格和新行上,而是在其他一些特殊字符上)


当前回答

您可能希望将所有空格替换为&nbsp;(非换行空格)和所有新行\n <br> (html中的换行符)。这应该能达到你想要的结果。

body = body.replace(' ', '&nbsp;').replace('\n', '<br>');

就是那种性质。

其他回答

您可以使用空白:行前来保存格式中的换行符。不需要手动插入html元素。

.popover {
    white-space: pre-line;    
}

或者添加到你的HTML元素style="white-space: pre-line;"

您可能希望将所有空格替换为&nbsp;(非换行空格)和所有新行\n <br> (html中的换行符)。这应该能达到你想要的结果。

body = body.replace(' ', '&nbsp;').replace('\n', '<br>');

就是那种性质。

你试过使用<pre>标签吗?

< >之前 文本与 在预标记之间嵌入多字符换行符 会起作用 标签也可以工作 它将保留格式.. < / >之前

只需要用空白设置内容样式:pre-wrap;。

div { 空白:pre-wrap; } < div > 这是一些文本,有一些额外的空格和 一些换行符和一些尾随空格 加上五个前导空格 为 好 测量 < / div >

有一个简单的方法。我在我的应用程序上试了试,效果很好。

只需输入:$text = $row["text"]; 回声nl2br($文本);