Декодирование экранированных 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 является точным эквивалентом. Смотрите этот пост для более подробной информации.

Другие вопросы по тегам