2017-02-15 6 views
0

Я хочу декодировать китайские символы во входное текстовое поле. Но оно показывает поле так, как оно есть.Декодирование китайских символов в текстовом поле ввода

Но он показывает "& # 28450; & # 23383;" вместо китайских иероглифов

Ожидаемый результат: 漢字
выход: & # 28450; & # 23383;

он работает нормально, когда я использовать Textarea

тип ввода = "текст" ID = "китайский"

функция туРипсЫоп() {

var uri_dec = decodeURIComponent("漢字") 
document.getElementById("chinese").value= uri_dec; 

}

Пожалуйста, помогите мне на этом

Заранее спасибо

ответ

0

decodeURIComponent не делает, что вы думаете. Он будет декодировать "%E6%BC%A2%E5%AD%97" (строка с кодировкой URI) в "漢字"; но у вас есть HTML-объекты, а не строка с кодировкой в ​​URI.

var ent_enc = "漢字" 
 
var div = document.createElement('div'); 
 
div.innerHTML = ent_enc; 
 
var ent_dec = div.textContent; 
 
document.getElementById("chinese").value = ent_dec;
<input type="text" id="chinese">

+0

Параметр 'innerHTML' использование небезопасно, если ваш вход может быть ненадежными. Например, 'var ent_enc =" "" приводит к выполнению кода. Использование 'document.createElement ('textarea')' будет более безопасным, поскольку у него не может быть дочерних узлов за пределами обычного текста. – ephemient

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