문서의 선택한 두 판 사이의 차이를 보여줍니다.
다음 판 | 이전 판 | ||
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}} |