Декодирование экранированных HTML-данных с помощью новых строк с использованием C#
Я использую JQuery AJAX для отправки данных из <textarea name="comments">
, на сервер, где данные будут храниться в базе данных SQL.
Если TextBox содержит
Строка 1
Line2
Line3,
Следующая строка передается на серверcomments=Line1%0ALine2%0ALine3
(данные, закодированные с использованием JavaScript escape
функция).
Однако я не могу разобрать это на сервере (с использованием C#), я попробовал эти подходы, и ни один из них не сработал.(Request.Form["comments"]).Replace("\r\n","<br/>");
(Server.UrlDecode(Request.Form["comments"])).Replace("\r\n","<br/>");
Все предложения приветствуются. Я не знаю, где я напортачу (на стороне клиента или на стороне сервера), но это не работает. Конечная цель - сохранить данные в базе данных SQL Server для последующего извлечения.
Спасибо за помощь!
3 ответа
Отредактировано в ответ на ваши изменения:
% 0A это \n, а не \ r \ n
"\ r \ n" - это два отдельных символа (ASCII 0xD и 0xA).
+ Изменить Replace("\r\n")
в Replace("\n")
,
Поэтому, основываясь на ответах Mud, вам понадобится
(Request.Form["comments"]).Replace("\n","<br/>");
но было бы лучше, если бы вы сделали
(Request.Form["comments"]).Replace("\r", "").Replace("\n","<br/>");
Microsoft.JScript.unescape является точным эквивалентом. Смотрите этот пост для более подробной информации.