2013-05-20 4 views
4

Я использую JavaScript/JQuery, чтобы заполнить элементы DOM, которые содержат умляуты:Как декодировать URL-закодированные строки в JavaScript

var text1 = "Unser platonisches Internetreich droht in die H%E4nde einer bewaffneten Miliz zu fallen." 

$("#quote1 span").html(unescape(text1)); 

Как я могу избавиться от кодирования URL-адрес, например, «H% E4nde» и вместо этого использовать «Hände»? Я попытался

<meta charset="utf-8" /> 

<meta name="http-equiv" content="Content-type: text/html; charset=UTF-8"/> 

<script type="text/javascript" src="js/index.js" charset="utf-8"></script> 

Но никто из них не похоже на работу ...

Спасибо за помощь.

+0

Это не "UTF-8 кодов". Почему данные кодируются таким образом? – deceze

+1

[Что каждый программист абсолютно, положительно должен знать о кодировках и наборах символов для работы с текстом] (http://kunststube.net/encoding/) – deceze

+0

Я просто хочу сохранить текст в строке, а затем отправить его в дом элемент. Единственный способ, который я нашел, - это вручную ввести escape-последовательности, а затем использовать unescape. –

ответ

18

Это не UTF-8, то есть percent encoding, также известный как кодировка url.

Вы можете использовать decodeURIComponent(), чтобы преобразовать его обратно перед выводом его

$("#quote1 span").html(decodeURIComponent(text1));

+0

Это процент закодирован * Latin1 * данные не меньше ... :) – deceze

Смежные вопросы