memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

문자 인코딩 (charater encoding)

컴퓨터는 Hello, World와 같이 인간의 언어를 이해할 수 없음.

 

컴퓨터가 이해할 수 있는 언어는 2진수뿐이다보니, 위와 같은 인간의 언어를 이해 할 수 있도록 문자를 2진수로 변환하는 작업이 필요함

 

2진수와 문자를 1대1로 대응하는 규칙을 통해 문자를 처리하는데,

이러한 대응 규칙에는 ASCII, EUC-KR, UTF-8, UTF-16, UTF-32 등 여러개의 규칙이 존재함

  • 예를들어, 아스키코드에서는 2진수 01000001 (10진수로 65)는 문자 A로 표현 됨

 

JAVA 예시 코드

int num = 65;

System.out.println(Integer.toBinaryString(num)); // 2진수
System.out.println((char) num); // 문자
1000001
A

 

글자가 깨지는 이유

처음에 컴퓨터가 생겼을때는 영어와 일부 특수문자만 지원했었음

다양한 국가에서 컴퓨터를 사용하게되면서, 나라마다 자기들만의 인코딩 방식(대응 규칙)을 만들어서 사용함

 

인코딩 방식이 다르다보니, EUC-KR로 작성된 문자를 다른 인코딩 방식으로 읽으려고하니 문자가 깨지는 현상이 발생함

 

인코딩 문제로 글자 깨짐 현상

 

이러한 문제를 해결하기 위해, 모든 언어에 대해 인코딩 할 수 있는 규칙이 만들어짐

  • 이 인코딩 방식이 유니코드(Unicode)
  • 유니코드 종류에는 UTF-8, UTF-16, UTF-32 가 있음

 

만약 개발 도중에 문자가 깨지는 현상이 발생한다면, 인코딩 문제인것으로 이해하고 올바른 인코딩 방식을 사용하면 됨

 

관련 글

2021/03/04 - [ETC] - 아스키 코드에 대해서 (ASCII)

 

아스키 코드에 대해서 (ASCII)

아스키코드 ASCII 아스키코드는 현재도 많이 사용되는 인코딩 방식 중 하나로, 영어 대/소문자 숫자, 공백, 특수 문자들을 표현 할 수 있음 총 표현할 수 있는 문자는 0 ~ 127 로 총 128 개의 문자를

memostack.tistory.com

2021/03/04 - [ETC] - EUC-KR(CP949)에 대해서

 

EUC-KR(CP949)에 대해서

EUC-KR EUC-KR 은 한글을 표현할 때 사용하는 인코딩 방식. 나라마다 독립적인 인코딩 방식을 가지고 있는데, 한국에서는 EUC-KR 이라는 인코딩 방식을 사용 한국어를 표현할때는 ASCII 코드와는 다르

memostack.tistory.com

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!