decodeURI()
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
decodeURI() 颿°ã¯ãencodeURI() 颿°ãããã¯åæ§ã®ã«ã¼ãã³ã«ãã£ã¦äºåã«ä½æããã URI (Uniform Resource Identifier; çµ±ä¸è³æºèå¥å) ããã³ã¼ããã¾ãã
試ãã¦ã¿ã¾ããã
const uri = "https://mozilla.org/?x=ÑеллÑ";
const encoded = encodeURI(uri);
console.log(encoded);
// äºæ³ãããçµæ: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
try {
console.log(decodeURI(encoded));
// äºæ³ãããçµæ: "https://mozilla.org/?x=ÑеллÑ"
} catch (e) {
// æ£ãããªã形㮠URI ãææ
console.error(e);
}
æ§æ
decodeURI(encodedURI)
弿°
encodedURI-
å®å ¨ã«ã¨ã³ã³ã¼ãããã URIã
è¿å¤
ä¸ããããã¨ã³ã³ã¼ããããçµ±ä¸è³æºèå¥å (URI) ã®ã¨ã³ã³ã¼ãããã¦ããªããã¼ã¸ã§ã³ãè¡¨ãæ°ããæååã
ä¾å¤
URIError-
encodedURIã« 2 æ¡ã® 16 鲿°åãç¶ããªã%ãå«ã¾ãã¦ããå ´åãã¾ãã¯ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãæå¹ãª UTF-8 æåãã¨ã³ã³ã¼ããã¦ããªãå ´åã«çºçãã¾ãã
解説
decodeURI() ã¯ãã°ãã¼ãã«ãªãã¸ã§ã¯ãã®é¢æ°ããããã£ã§ãã
decodeURI() 颿°ã¯ã %XX ã¨ããå½¢ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã 1 ã¤ã® UTF-8 ã³ã¼ãåä½ï¼1 ãã¤ãï¼ã¨ãã¦æ±ãã URI ããã³ã¼ããã¾ãã UTF-8 ã§ã¯ãæåã®ãã¤ãã®å
é ã«ãã 1 ãããã®æ°ã¯ã 0 ï¼1 ãã¤ãã® ASCII æåã®å ´åï¼ã«ãªããã¨ãããã2ã3ã4 ãããç®ã¯ãæåã®ãã¤ãæ°ã示ãã¾ãããããã£ã¦ãæåã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãèªã¿è¾¼ããã¨ã§ã decodeURI() ã¯ãããã«æ¶è²»ãã¹ãã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã®æ°ã決å®ãããã¨ãã§ãã¾ãã decodeURI() ãäºæ³ããæ°ã®ã·ã¼ã±ã³ã¹ãè¦ã¤ããããªãã£ãå ´åãã¾ãã¯ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãæå¹ãª UTF-8 æåãã¨ã³ã³ã¼ããã¦ããªãå ´åã URIError ãçºçãã¾ãã
decodeURI() ã¯ãã¹ã¦ã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ããã³ã¼ããã¾ãããã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ãæ¬¡ã®æåã®ãããããã¨ã³ã³ã¼ããã¦ããå ´åããã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã¯åºåæååã«ä¿æããã¾ãï¼ããã㯠URI æ§æã®ä¸é¨ã§ããããï¼ã
; / ? : @ & = + $ , #
ä¾
>ããªã«æåã® URL ããã³ã¼ã
decodeURI(
"https://developer.mozilla.org/ru/docs/JavaScript_%D1%88%D0%B5%D0%BB%D0%BB%D1%8B",
);
// "https://developer.mozilla.org/ru/docs/JavaScript_ÑеллÑ"
decodeURI() 㨠decodeURIComponent()
decodeURI() ã¯ãå
¥åãå®å
¨ãª URI ã§ããã¨ä»®å®ãããããURI æ§æã®ä¸é¨ã§ããæåã¯ãã³ã¼ããã¾ããã
decodeURI(
"https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript%3A a_scripting_language"
decodeURIComponent(
"https://developer.mozilla.org/docs/JavaScript%3A%20a_scripting_language",
);
// "https://developer.mozilla.org/docs/JavaScript: a_scripting_language"
ã¨ã©ã¼ã®ææ
try {
const a = decodeURI("%E0%A4%A");
} catch (e) {
console.error(e);
}
// URIError: malformed URI sequence
仿§æ¸
| 仿§æ¸ |
|---|
| ECMAScript® 2027 Language Specification > # sec-decodeuri-encodeduri > |