본문 바로가기
💻CS/네트워크

[WEB/이론] Encoding, UTF-8, URL Encoding

by Dong Ik 2022. 9. 1.

인코딩은 옛날에 PMP에 동영상 넣을 때부터 사용했던 거라 용어는 친숙했지만 그게 다였다

웹 개발을 하면서 html 문서에 인코딩을 꼭 하라고 해서 왜 쓰는지 궁금해져서 정리해봤다 

 

Encoding

 

사람이 컴퓨터에 0과 1만 가지고 정보를 읽고 쓰면 불편하기 때문에

우리가 사용하는 글자들에 각각 대응하는 숫자를 매핑시킨다

즉, 사람의 문자를 컴퓨터가 알아볼 수 있도록 바이너리 신호로 바꿔주는 것을 문자 인코딩이라고 한다

 

 

아래는 초창기 미국에서 만들어진 아스키 코드표이다

영어와 일부 특수문자들만 포함되어 있다

 

빨간색으로 표시된 문자를 입력하면 초록색으로 표시된 바이너리 코드로 변환되어(인코딩) 컴퓨터가 이해할 수 있도록 한다 

 

 

 

UTF-8

아스키 코드표는 한글은 포함되어 있지 않았으며

한글을 쓰고 싶은데 문자열 셋이 통일이 되어있지 않으면(인코딩을 제대로 해주지 않으면)

아래처럼 글자가 깨지게 된다.

 

으악!

 

나라들마다 문자열 셋이 다양하기 때문에 문자열 방식과 인코딩 방식을 맞춰주는 것이 필요하다

쓰는 곳마다 표가 달라지기 때문에 Unicode라는 것이 나왔다

Unicode 안에는 사람이 사용하는 거의 모든 언어가 포함되어 있다

 

이 외에도 다양한 언어가 포함되어 있다

 

 

UnicodeUTF(Universal Coded Character Set + Transformation Fromat)으로 인코딩한다

주로 UTF-8을 이용하며

UTF-8처럼 뒤에 나와있는 숫자는 비트 수를 말한다

즉, 몇 bit를 사용하여 Index를 표현할 것인가를 뜻한다

 

  • UTF-8은 8bit를 사용하여 1개의 Index를 표현
  • UTF-16은 16bit를 사용하여 1개의 Index를 표현
  • UTF-32는 32bit를 사용하여 1개의 Index를 표현

 

URL Encoding

 

웹사이트 주소 뒤에 URL 파라미터를 넣어서 서버에 인자를 보내보자

아래는 구글에 안녕이라는 글자를 검색했을 때 나타나는 URL이다

 

 

 

하지만 URL에는 아스키 코드의 문자 집합만 사용할 수 있기 때문에,

한글이나 스페이스와 같은 것들을 포함한 문자열은 미리 약속된 방식을 통해 아스키 코드로 인코딩해서 이용한다

 

 

이를 확인해보기 위해 URL을 메모장에 복사해보면 다음과 같이 

안녕 → %EC%95%88%EB%85%95

한글이 아스키 코드로 인코딩 된 것을 볼 수 있다