aboutsummaryrefslogtreecommitdiff
path: root/files/ru/web/javascript/reference/errors/malformed_uri/index.html
blob: 460c0a3a3da478b44eccfc698e62cfdbac9d0373 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
---
title: 'URIError: malformed URI sequence'
slug: Web/JavaScript/Reference/Errors/Malformed_URI
translation_of: Web/JavaScript/Reference/Errors/Malformed_URI
---
<div>{{jsSidebar("Errors")}}</div>

<h2 id="Сообщение">Сообщение</h2>

<pre class="syntaxbox">URIError: malformed URI sequence (Firefox)
URIError: URI malformed (Chrome)
</pre>

<h2 id="Тип_ошибки">Тип ошибки</h2>

<p>{{jsxref("URIError")}}</p>

<h2 id="Что_пошло_не_так">Что пошло не так?</h2>

<p>Декодирование или кодирование URI не было успешным. Аргумент переданный функциям {{jsxref("decodeURI")}}, {{jsxref("encodeURI")}}, {{jsxref("encodeURIComponent")}},  или {{jsxref("decodeURIComponent")}} был недопустимым, из-за этого функция не смогла выполнить кодирование или декодирование.</p>

<h2 id="Примеры">Примеры</h2>

<h3 id="Кодирование">Кодирование</h3>

<p>Кодирование заменяет каждое вхождение конкретного символа одним, двумя, тремя или четырьмя управляющими последовательностями, представленными  стандартом UTF-8. {{jsxref("URIError")}} возникнет, при попытке кодирования суррогата, не являющегося частью high-low пары, например:</p>

<pre class="brush: js example-bad">encodeURI('\uD800');
// "URIError: malformed URI sequence"

encodeURI('\uDFFF');
// "URIError: malformed URI sequence"
</pre>

<p>Нормальная high-low пара. Например:</p>

<pre class="brush: js example-good">encodeURI('\uD800\uDFFF');
// "%F0%90%8F%BF"</pre>

<h3 id="Декодирование">Декодирование</h3>

<p>Декодирование заменяет каждую управляющую последовательность в закодированном URI компоненте символом, который она представляет. Если такого символа нет, возникнет ошибка:</p>

<pre class="brush: js example-bad">decodeURIComponent('%E0%A4%A');
// "URIError: malformed URI sequence"
</pre>

<p>Правильный вариант обычно выглядит так:</p>

<pre class="brush: js example-good">decodeURIComponent('JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B');
// "JavaScript_шеллы"</pre>

<h2 id="Смотрите_также">Смотрите также</h2>

<ul>
 <li>{{jsxref("URIError")}}</li>
 <li>{{jsxref("decodeURI")}}</li>
 <li>{{jsxref("encodeURI")}}</li>
 <li>{{jsxref("encodeURIComponent")}}</li>
 <li>{{jsxref("decodeURIComponent")}}</li>
</ul>