[JAVA] 인코딩과 디코딩, URLEncoder, URLDecoder

seonjeong·2023년 5월 2일
0

Java

목록 보기
18/26
post-thumbnail

💖 인코딩과 디코딩

🔥 인코딩

  • 사람이 인지할 수 있는 문자(언어)를 약속된 규칙에 따라 컴퓨터가 이해하는 언어(0,1)로 이루어진 코드로 바꾸는 것
  • 정해진 규칙에 따라 코드화, 암호화, 부호화하는 것
  • 종류 : 문자 인코딩, 사진/오디오/비디오 인코딩

🔥 디코딩

  • 인코딩의 반대되는 개념
  • 복호화, 역코드화하는 것
  • 특정 인코딩 방식으로 인코딩이 된 데이터를 동일한 방식으로 디코딩을 해주면 데이터를 읽어올 수 있음
  • 인코딩과 디코딩은 순환 구조를 가지고 있음

인코딩, 디코딩을 볼 수 있는 사이트
https://r12a.github.io/app-encodings/


💖 URLEncoder, URLDecoder

🔥 URLEncoder

: 일반 문자열을 웹에서 통용되는 'x-www-form-urlencoded' 형식으로 변환하는 역할을 담당

변환규칙

  • 아스키문자(a~z, A~Z, 1~9), '.', '-', '*', '_' : 그대로 전달
  • 공백문자(' ') : '+' 기호로 변환됨
  • 기타문자 : '%xy' 와 같이 세 개의 문자로 변환되며, 이 때 xy는 해당 문자의 ASCII코드를 16진수화한 결과를 두자리의 대문자로 나타낸 것이다.

예시

import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
 
public class URLEncodeTest {
    public static void main(String[] args) {
        String url = null;
        try {
            url = URLEncoder.encode("한글 인코딩 이라네~", "UTF-8");
        } catch (UnsupportedEncodingException e1) {
            e1.printStackTrace();
        }
 
        System.out.println(url);
    }
}

// 결과
// %ED%95%9C%EA%B8%80+%EC%9D%B8%EC%BD%94%EB%94%A9+%EC%9D%B4%EB%9D%BC%EB%84%A4%7E

🔥 URLDecoder

: URLEncoder로 인코딩된 결과를 디코딩하는 클래스

예시

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
 
public class URLDecodeTest {
    public static void main(String[] args) {
        String url = null;
 
        try {
            url = URLDecoder.decode("%ED%95%9C%EA%B8%80+%EC%9D%B8%EC%BD%94%EB%94%A9+%EC%9D%B4%EB%9D%BC%EB%84%A4%7E", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
 
        System.out.println(url);
    }
 
}

// 결과
// 한글 인코딩 이라네~




Reference

https://codingpractices.tistory.com/entry/%EC%9D%B8%EC%BD%94%EB%94%A9-vs-%EB%94%94%EC%BD%94%EB%94%A9-%EC%A0%95%ED%99%95%ED%95%98%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
https://dololak.tistory.com/19

profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보