문서의 선택한 두 판 사이의 차이를 보여줍니다.
| 다음 판 | 이전 판 | ||
|
wiki:miscellaneous:urlencoderandurldecoder [2022/04/14 15:22] emblim98 만듦 |
wiki:miscellaneous:urlencoderandurldecoder [2023/01/13 18:44] (현재) |
||
|---|---|---|---|
| 줄 7: | 줄 7: | ||
| </ | </ | ||
| <WRAP clear></ | <WRAP clear></ | ||
| - | + | \\ | |
| - | ===== Percent-encoding ===== | + | \\ |
| + | ====== Percent-encoding | ||
| 퍼센트 인코딩은 URL 컨텍스트에서 특정 의미를 가지는 8bit 문다를 인코딩하는 메커니즘입니다.\\ | 퍼센트 인코딩은 URL 컨텍스트에서 특정 의미를 가지는 8bit 문다를 인코딩하는 메커니즘입니다.\\ | ||
| 퍼센트 인코딩은 URL 인코딩이라고 불리기도 합니다. 퍼센트 인코딩은 기호 % 다음에 대체 문자의 ASCII 값을 나타내는 16진수 표현식으로 표시됩니다.\\ | 퍼센트 인코딩은 URL 인코딩이라고 불리기도 합니다. 퍼센트 인코딩은 기호 % 다음에 대체 문자의 ASCII 값을 나타내는 16진수 표현식으로 표시됩니다.\\ | ||
| 줄 21: | 줄 22: | ||
| | 5 | **'' | | 5 | **'' | ||
| \\ | \\ | ||
| - | 컨텍스트에 따라 '' | + | 컨텍스트에 따라 '' |
| + | \\ | ||
| + | \\ | ||
| + | ====== Class URLEncoder ====== | ||
| + | HTML form 인코딩을 위한 유틸리티 클래스입니다. 이 클래스에는 String을 application/ | ||
| + | \\ | ||
| + | 문자열을 인코딩할 때 다음 규칙이 적용됩니다.\\ | ||
| + | \\ | ||
| + | * 영숫자 문자 " | ||
| + | * 특수 문자 " | ||
| + | * 공백 문자 " "는 더하기 기호 " | ||
| + | * 다른 모든 문자는 안전하지 않기 때문에, 먼저 일부 인코딩 체계를 사용하여 하나 이상의 바이트로 변환됩니다. 그런 다음 각 바이트는 3자 문자열 " | ||
| + | \\ | ||
| + | 예를 들어 UTF-8을 인코딩 체계로 사용하면, | ||
| + | \\ | ||
| + | \\ | ||
| + | ====== Class URLDecoder ====== | ||
| + | HTML form 디코딩을 위한 유틸리티 클래스입니다. 이 클래스에는 application/ | ||
| + | \\ | ||
| + | 변환 프로세스는 URLEncoder 클래스에서 사용하는 것과 반대입니다. 인코딩된 문자열의 모든 문자는 " | ||
| + | 문자 " | ||
| + | \\ | ||
| + | 변환에는 다음 규칙이 적용됩니다. | ||
| + | * 영숫자 문자 " | ||
| + | * 특수 문자 " | ||
| + | * 더하기 기호 " | ||
| + | * " | ||
| + | \\ | ||
| + | 이 디코더가 잘못된 문자열을 처리할 수 있는 두 가지 가능한 방법이 있습니다. 잘못된 문자를 그대로 두거나 IllegalArgumentException을 throw할 수 있습니다. 디코더가 취하는 접근 방식은 구현에 달려 있습니다.\\ | ||
| + | \\ | ||
| + | ==== Example 1 ==== | ||
| + | <code java> | ||
| + | package com.ocean.escapehtml; | ||
| + | import java.io.UnsupportedEncodingException; | ||
| + | import java.net.URLDecoder; | ||
| + | import java.net.URLEncoder; | ||
| + | public class PercentEncode { | ||
| + | | ||
| + | // 돌체 비타 %EB%8F%8C%EC%B2%B4+%EB%B9%84%ED%83%80 | ||
| + | | ||
| + | public static void main(String[] args) throws UnsupportedEncodingException { | ||
| + | | ||
| + | String encodedText = " | ||
| + | encodedText = URLEncoder.encode(encodedText, | ||
| + | System.out.println(" | ||
| + | // encodedText :: %EB%8F%8C%EC%B2%B4%20%EB%B9%84%ED%83%80 | ||
| + | String decodedText = encodedText; | ||
| + | decodedText = URLDecoder.decode(decodedText, | ||
| + | System.out.println(" | ||
| + | // decodedText :: 돌체 비타 | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | \\ | ||
| + | \\ | ||
| + | ==== Example 2 ==== | ||
| + | <code java> | ||
| + | package com.ocean.escapehtml; | ||
| + | import java.io.UnsupportedEncodingException; | ||
| + | import java.net.MalformedURLException; | ||
| + | import java.net.URL; | ||
| + | import java.net.URLEncoder; | ||
| + | public class URLEncoderExample { | ||
| + | | ||
| + | public static void main(String[] args) throws MalformedURLException, | ||
| + | // base URL | ||
| + | String baseurl = " | ||
| + | // String to be encoded | ||
| + | String query = " | ||
| + | URL url = new URL(baseurl + query); | ||
| + | System.out.println(" | ||
| + | // URL without encoding : https:// | ||
| + | // encode() method | ||
| + | url = new URL(baseurl + URLEncoder.encode(query, | ||
| + | System.out.println(" | ||
| + | // URL after encoding : https:// | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | \\ | ||
| + | \\ | ||
| + | ==== Example 3 ==== | ||
| + | <code java> | ||
| + | package com.ocean.escapehtml; | ||
| + | import java.io.UnsupportedEncodingException; | ||
| + | import java.net.MalformedURLException; | ||
| + | import java.net.URL; | ||
| + | import java.net.URLDecoder; | ||
| + | import java.net.URLEncoder; | ||
| + | public class URLDecoderExample { | ||
| + | | ||
| + | public static void main(String[] args) throws MalformedURLException, | ||
| + | // base URL | ||
| + | String baseurl = " | ||
| + | | ||
| + | // String to be encoded | ||
| + | String query = " | ||
| + | URL url = new URL(baseurl + query); | ||
| + | System.out.println(" | ||
| + | // (1) Original URL: https:// | ||
| + | String encodedStr = URLEncoder.encode(query, | ||
| + | url = new URL(baseurl + encodedStr); | ||
| + | System.out.println(" | ||
| + | // (2) Encoded URL : https:// | ||
| + | // decode() method | ||
| + | String decodedStr = URLDecoder.decode(encodedStr, | ||
| + | System.out.println(" | ||
| + | // (3) Decoded URL : https:// | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | |||
| + | ===== Ref Site ===== | ||
| + | [[https:// | ||
| + | \\ | ||
| + | [[https:// | ||
| + | \\ | ||
| + | [[https:// | ||
| + | \\ | ||
| + | [[https:// | ||
| + | \\ | ||
| {{tag> 오션, URLEncoder, encode, URLDecoder, decode, PercentEncoding}} | {{tag> 오션, URLEncoder, encode, URLDecoder, decode, PercentEncoding}} | ||