aboutsummaryrefslogtreecommitdiff
path: root/files/ja/web/javascript/reference/errors/malformed_uri/index.html
blob: c0940bd26624a4c53fa1815b1940a4997b08dd04 (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
62
63
64
65
66
67
68
69
---
title: 'URIError: malformed URI sequence'
slug: Web/JavaScript/Reference/Errors/Malformed_URI
tags:
- Error
- Errors
- JavaScript
- URIError
translation_of: Web/JavaScript/Reference/Errors/Malformed_URI
---
<div>{{jsSidebar("Errors")}}</div>

<p>JavaScript の例外 "malformed URI sequence" は、 URI エンコードまたはデコードに失敗したときに発生します。</p>

<h2 id="Message">エラーメッセージ</h2>

<pre class="brush: js">URIError: The URI to be encoded contains invalid character (Edge)
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="Encoding">エンコード</h3>

<p>エンコードは、特定の文字インスタンスをそれぞれ、文字の UTF-8 エンコーディングを表す 1 から 4 つの並びに置き換えます。高低ペアの一部ではないサロゲートをエンコードしようとした場合、次のように {{jsxref("URIError")}} が発生します。</p>

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

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

<p>高低ペアが正しい場合の例です。</p>

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

<h3 id="Decoding">デコード</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>