diff options
Diffstat (limited to 'files/zh-cn/web/javascript/reference/errors/malformed_uri')
| -rw-r--r-- | files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html b/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html new file mode 100644 index 0000000000..40bb10ae1d --- /dev/null +++ b/files/zh-cn/web/javascript/reference/errors/malformed_uri/index.html @@ -0,0 +1,65 @@ +--- +title: 'URIError: malformed URI sequence' +slug: Web/JavaScript/Reference/Errors/Malformed_URI +tags: + - JavaScript + - URLError + - 错误提示 +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")}} 错误,例如:</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="解码">解码</h3> + +<p>解码操作则是将已经经过编码的 URL 片段中的每一个转义序列替换为相对应的字符。如果相应的字符不存在,就会抛出错误:</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> |
