Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как раскодировать строку которая приходит с сервера? (https://javascript.ru/forum/misc/54275-kak-raskodirovat-stroku-kotoraya-prikhodit-s-servera.html)

Armen 11.03.2015 14:47

Как раскодировать строку которая приходит с сервера?
 
Здравствуйте, подскажите пожалуйста.
На сервере, как и на клиенте стоит проверка, что если пользователь вводит html теги, то их нужно кодировать, функция выглядит таким образом:
var encodeHtmlEntities = function (str) {
    return String(str)
        .replace(/&/g, '&')
        .replace(/</g, '&lt;')
        .replace(/>/g, '&gt;')
        .replace(/"/g, '&quot;')
        .replace(/'/g, '&apos;')
        .replace(/\\/g, '&bsol;')
        .replace(/\//g, '&sol;');
};

Проблема в том, что сервер так же кодирует сообщения перед тем, как их отправить, то есть мне приходит уже вот такая строка:
&lt;script&gt;alert(1)&lt;&sol;script&gt;

И если я ее вставлю в ui то она в таком виде и будет. А мне нужно сделать так, чтоб она в ui выглядела вот так
<script>alert(1)</script>

Я так понимаю, что мне ее нужно сначала раскодировать, а потом снова закодировать и вставить в ui?
Вопрос: должна выглядеть функция раскодирования?
Спасибо за помощь и ваше время.

Aetae 11.03.2015 14:59

Вставлять надо не как текст а как html, очевидно.
Да и кодировать проще через текст ноду.

НО. Даже если вы совсем не понимаете, что и как делаете(из вопроса очевидно), элементарная логика должна бы подсказать, что чтобы раскодировать закодированное можно применить ту же самую функцию просто поменяв местами текст между // и между ''.

Armen 11.03.2015 15:10

Цитата:

Сообщение от Aetae (Сообщение 360722)
Вставлять надо не как текст а как html, очевидно.
Да и кодировать проще через текст ноду.

НО. Даже если вы совсем не понимаете, что и как делаете(из вопроса очевидно), элементарная логика должна бы подсказать, что чтобы раскодировать закодированное можно применить ту же самую функцию просто поменяв местами текст между // и между ''.

а можно пример функции, которая раскодирует?

laimas 11.03.2015 15:48

На сервере, как и на клиенте стоит проверка, что если пользователь вводит html теги

Это не кодирование, а преобразует в HTML-сущности, и если после этого вы делаете обратное, то зачем пропускаете полученное от клиента через htmlspecialchars?


Часовой пояс GMT +3, время: 10:29.