如何在使用ASP.NET和C#的SQL Server中保留换行?

3

我是一名多语言助手,用户在文本框中提供简要详情。

就像这样:

user entering data in multiline textbox

我将其保存在SQL Server中并重新检索后,它显示如下屏幕截图:

without line break

我该如何保留换行?在将数据保存到SQL Server之前需要加密吗?

谢谢。

这是我的代码:

<div id="Description_id" runat="server">
</div>

C# 代码:

string description = rd["job_description"].ToString();
Description_id.InnerText = description.Replace("\r\n", "<br/>");

1
你没有展示你如何检索/查看它。在询问是否应该加密之前,你应该先查一下加密的含义,因为这里根本不适用。 - mason
2个回答

8
当你从<textarea><input>中获取文本内容时,行尾换行符会被存储为新行字符,Unix系统通常为\n,而Windows则为\r\n
您需要将这些新行字符转换为<br />标签,以便它们在输入中正确显示且保留换行。例如,您可以像这样进行操作:
var outputHtml = textFromDb.Replace( "\r\n", "<br />" ).Replace( "\n", "<br />" );

这将确保替换适用于Unix和Windows换行符。Windows格式替换首先出现,因为Unix格式是它的子字符串。
或者,您也可以将来自数据库的文本包装在<pre>中,这将保留空格字符(包括换行符)。

字符串描述= rd [“job_description”] .ToString().Replace(“\ r \ n”,“<br/>”); Description_id.InnerText = description;输出仍然相同。** 输出** 这是一个美丽的世界,<br/><br/>同时生存并不容易。我们应该努力工作。同时生存并不容易。我们应该努力工作。<br/><br/><br/><br/><br/><br/>同时生存并不容易。 - Faisal
你需要设置 Description_iddiv 元素的 InnerHtml 属性。InnerText 会自动转换不安全字符,因此在输出中将 < 转换为 &lt; - Martin Zikmund
我明白了,哦我的朋友,你解释每一行代码和所有细节的方式真是太棒了。谢谢。 - Faisal
非常感谢,你真是太好了 :-)!祝编程愉快! - Martin Zikmund

0

我认为你的问题不在于从 SQL 服务器保存/检索数据,而是从浏览器发送到服务器。请确保您发送的文本包含所有这些换行符。使用 Fiddler 或浏览器控制台检查您实际发送了什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接