2015-04-29 2 views
0

Я использую javascript для получения переменных сервера asp.net для их отображения, проблема в том, что если у них есть специальный символ html, то строка не назначается, поскольку она находится на сервере и он отображается неправильно.Как правильно отображать специальные html-символы с помощью javascript

Например строка:

`ALBERTO GÓMEZ SÁNCHEZ` 

проявляет как

`ALBERTO GóMEZ SáNCHEZ` 

Я знаю, что я мог бы использовать функцию Replace, но делать это для каждого возможного специального символа HTML кажется слишком много времени ... Я предполагаю, что должна быть встроенная функция, которая легко решает это, но я не могу найти ее или более простой метод, чем пытаться заменить каждый возможный специальный символ html.

Вы знаете какой-либо способ? Спасибо за вашу помощь.

+0

Посмотрите в источнике (например, инструменты для разработчиков), вы видите «Гомеса» или «г & #234; MEZ»? – giorgio

ответ

0

Если вы хотите расшифровать HTML строка использовать этот способ:

function decodeHTMLEntities (str) { 
    if(str && typeof str === 'string') { 
     // strip script/html tags 
     str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, ''); 
     str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, ''); 
     element.innerHTML = str; 
     str = element.textContent; 
     element.textContent = ''; 
    } 

    return str; 
    } 

Взято отсюда: HTML Entity Decode

Если вы хотите сделать поместить этот HTML строку в свой DOM, вам не нужно декодировать он, браузер выполнит эту работу для вас. Просто вставьте его так:

$("body").html(encodedHtmlStringFromServer);