본문 바로가기

컴퓨터 과학

ASCII 유니코드 UTF-8?

728x90
utf-8 인코딩을 안해서 문자가 깨진 적이 한 두 번이 아니었다... 제대로 이해하고 넘어가자

컴퓨터에서 문자는 어떻게 나타내지?

컴퓨터는 0과 1을 통해 숫자를 나타낸다. 그렇다면 컴퓨터는 "a", "가"와 같은 문자는 어떻게 나타낼까?

0과 1을 이용해선 숫자밖에 나타낼 수 없기 때문에 각 문자를 대응되는 숫자로 정리해두면, 사용자가 특정 문자를 입력했을 때 이를 컴퓨터가 이해할 수 있는 숫자로 변환할 수 있게 된다. 이처럼 사용자가 입력한 문자나 기호들을 컴퓨터가 이용할 수 있는 신호로 만드는 것을 인코딩이라고 한다.

 

ASCII

1963년 미국에서는 위에서 설명한 것처럼 문자를 해석하기 위한  정보 교환용 표준 부호 체계를 만들었고, 이를 ASCII(American Standard Code for Information Interchange)라고 한다. ASCII는 모든 부호(문자)를 표현하는데 7비트를 이용하고, 나머지 1비트를 통해 통신 에러를 검출한다.

테이블을 참고하면 'a' = 97 'A' = 65를 나타내는 것을 알 수 있고, 'a' - 32 = 'A'처럼 숫자 연산으로 문자를 조작할 수 있다.

 

유니코드

ASCII는 미국에서 만들었기 때문에 영어가 아닌 한국어나 일본어, 중국어처럼 복잡한 언어를 나타낼 수 없다. 그래서 전 세계 모든 문자를 일관되게 표현할 수 있는 유니코드(The Unicode Standard)가 탄생하게 되었다.

유니코드 기반의 문자들을 인코딩 하는 방식으로는 UTF-8, UTF-16, UTF-32 등이 있다. UTF 뒤의 숫자는 한 문자를 인코딩할 때 사용하는 비트 수를 뜻한다. 가장 많이 접한 UTF-8은 문자의 코드가 속한 범위에 따라 가변 길이로 인코딩을 한다. ASCII 문자는 1바이트로, 중동과 유럽 지역 언어는 2바이트, 한글 등 아시아권 언어는 3바이트 이상으로 인코딩한다.

 

참고 및 출처

https://www.youtube.com/watch?v=apZFcOfAr5w

https://www.youtube.com/watch?v=Weo4tS86C5U

https://namu.wiki/w/%EC%95%84%EC%8A%A4%ED%82%A4%20%EC%BD%94%EB%93%9C

https://danac.tistory.com/92

https://m.blog.naver.com/ycpiglet/222146759413

https://ko.wikipedia.org/wiki/%EB%AC%B8%EC%9E%90_%EC%9D%B8%EC%BD%94%EB%94%A9

https://cloudedi.tistory.com/entry/UTF-8-UTF-16-UTF-32-%ED%95%9C%EA%B8%80-%EC%9D%B8%EC%BD%94%EB%94%A9

반응형

'컴퓨터 과학' 카테고리의 다른 글

컴파일러(Compiler)와 인터프리터(Interpreter)  (1) 2024.06.13
2진법 10진법 16진법  (0) 2024.06.13