Baseline Widely available
encodeURI()
颿°ã¯ãURI (Uniform Resource Identifier; çµ±ä¸è³æºèå¥å) ãã¨ã³ã³ã¼ãããåæåã®ã¤ã³ã¹ã¿ã³ã¹ããããã UTF-8 符å·ã®æåã表ã 1 åãã 4 åã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã«ç½®ãæãã¾ã (ãµãã²ã¼ãæåã®ãã¢ã®ã¿ 4 åã®ã¨ã¹ã±ã¼ãã·ã¼ã±ã³ã¹ã«ãªãã¾ã)ã
const uri = "https://mozilla.org/?x=ÑеллÑ";
const encoded = encodeURI(uri);
console.log(encoded);
// Expected output: "https://mozilla.org/?x=%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"
try {
console.log(decodeURI(encoded));
// Expected output: "https://mozilla.org/?x=ÑеллÑ"
} catch (e) {
// Catches a malformed URI
console.error(e);
}
æ§æ 弿° è¿å¤
URI (Uniform Resource Identifier) ã¨ãã¦ã¨ã³ã³ã¼ããããæå®ãããæååãè¡¨ãæ°ããæååã§ãã
解説encodeURI()
颿°ã§ã¯ã URI ã«ããã¦ç¹å¥ãªæå³ãæã¤æå (äºç´æå) ã¯ã¨ã³ã³ã¼ãããã¾ãããä¸è¨ã®ä¾ã¯ URI "scheme" ã«å«ã¾ããå¯è½æ§ãããå
¨ã¦ã®ç®æã示ãã¦ãã¾ããç¹å®ã®æåãã©ã®ããã«ç¹æ®ãªæå³ã表ãããã«ä½¿ããã¦ãããã«æ³¨æãã¦ãã ããã
http://username:password@www.example.com:80/path/to/file.php?foo=316&bar=this+has+spaces#anchor
ãããã£ã¦ã encodeURI()
ã¯å®å
¨ãª URI ã表ãã®ã«å¿
è¦ãªæåã¯ã¨ã³ã³ã¼ããã¾ãããã¾ãã encodeURI()
㯠"unreserved marks" (äºç´ããã¦ããªãã "ãã®ã¾ã¾" URI ã«ä½¿ç¨ã§ãã) æåãã¨ã³ã³ã¼ããã¾ããã (RFC2396 ã確èªãã¦ãã ããã)
encodeURI()
ã¯ä¸è¨ä»¥å¤ã®å
¨ã¦ã®æåãã¨ã¹ã±ã¼ããã¾ãã
ã¨ã¹ã±ã¼ããããªããã®: A-Z a-z 0-9 ; , / ? : @ & = + $ - _ . ! ~ * ' ( ) #ä¾ encodeURI 㨠encodeURIComponent
encodeURI()
ã¯ä»¥ä¸ã®ããã« encodeURIComponent()
ã¨ã¯ç°ãªãã¾ãã
var set1 = ";,/?:@&=+$#"; // äºç´æå
var set2 = "-_.!~*'()"; // äºç´ããã¦ããªãè¨å·
var set3 = "ABC abc 123"; // è±æ°å + 空ç½
console.log(encodeURI(set1)); // ;,/?:@&=+$#
console.log(encodeURI(set2)); // -_.!~*'()
console.log(encodeURI(set3)); // ABC%20abc%20123 (空ç½ã¯ %20 ã«ã¨ã³ã³ã¼ãããã)
console.log(encodeURIComponent(set1)); // %3B%2C%2F%3F%3A%40%26%3D%2B%24%23
console.log(encodeURIComponent(set2)); // -_.!~*'()
console.log(encodeURIComponent(set3)); // ABC%20abc%20123 (空ç½ã¯ %20 ã«ã¨ã³ã³ã¼ãããã)
ãªããencodeURI()
ã®ã¿ã§ã¯ã HTTP ã® GET
ããã³ POST
ãªã¯ã¨ã¹ãã XMLHttpRequest
ã®ããã«é©åã«æ§æã§ãã¾ããããªããªãã "&
", "+
", "=
" 㯠GET
ããã³ POST
ãªã¯ã¨ã¹ãã«ããã¦ç¹å¥ãªæåã§ãããããããã¨ã³ã³ã¼ããããªãããã§ãã encodeURIComponent()
ã®å ´åãããããã¨ã³ã³ã¼ãããã¾ãã
ãµãã²ã¼ããã¢ã«ãªã£ã¦ããªã 1 åã®ãµãã²ã¼ãæåãã¨ã³ã³ã¼ããããã¨ãã㨠URIError
ãçºçãããã¨ã«æ³¨æãã¦ãã ãããä¾ãã°ã
// ãµãã²ã¼ããã¢ã¯ OK
console.log(encodeURI("\uD800\uDFFF"));
// ä¸ä½ãµãã²ã¼ãã®ã¿ã 㨠"URIError: malformed URI sequence" ã¨ã©ã¼ãçºç
console.log(encodeURI("\uD800"));
// ä¸ä½ãµãã²ã¼ãã®ã¿ã 㨠"URIError: malformed URI sequence" ã¨ã©ã¼ãçºç
console.log(encodeURI("\uDFFF"));
IPv6 ã®ã¨ã³ã³ã¼ã
ã¾ãã URL è¨è¿°ã®ããã«æè¿ã® RFC3986 仿§ã«å¾ããã¨ããå ´åãè§æ¬å¼§ []
㯠(IPv6 ç¨ã®) äºç´æåã¨ãªã£ã¦ãããããè§æ¬å¼§ã (ãã¹ãåãªã©) URL ã®ä¸é¨ãå½¢æãã¦ããå ´åã¯ã¨ã³ã³ã¼ãããã¦ããªãã»ããããã§ããããããããå ´åã¯ä»¥ä¸ã®ã³ã¼ããå½¹ã«ç«ã¡ã¾ãã
function fixedEncodeURI(str) {
return encodeURI(str).replace(/%5B/g, "[").replace(/%5D/g, "]");
}
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4