Я думал, что значения, введенные в формы, правильно закодированы браузерами.
Но этот простой тестовый файл "test_get_vs_encodeuri.html" показывает, что это не так:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title></title>
</head><body>
<form id="test" action="test_get_vs_encodeuri.html" method="GET" onsubmit="alert(encodeURIComponent(this.one.value));">
<input name="one" type="text" value="Euro-€">
<input type="submit" value="SUBMIT">
</form>
</body></html>
При нажатии кнопки отправки:
encodeURICompenent кодирует входное значение в «Euro-% E2% 82% AC»
пока браузер в запросе GET записывает только простое «Евро-% 80»
Может кто-нибудь объяснить?
Как мне кодировать все так же, как в FORM (windows-1252) borwser, используя Javascript ??? (функция escape не работает, encodeURIComponent не работает)) 1024 *
Или encodeURIComponent выполняет ненужные преобразования?