1. 문자 인코딩 (charater encoding)
컴퓨터는 Hello, World
와 같이 인간의 언어를 이해할 수 없음.
컴퓨터가 이해할 수 있는 언어는 2진수뿐이다보니, 위와 같은 인간의 언어를 이해 할 수 있도록 문자를 2진수로 변환하는 작업이 필요함
2진수와 문자를 1대1로 대응하는 규칙을 통해 문자를 처리하는데,
이러한 대응 규칙에는 ASCII
, EUC-KR
, UTF-8
, UTF-16
, UTF-32
등 여러개의 규칙이 존재함
- 예를들어, 아스키코드에서는 2진수
01000001
(10진수로 65)는 문자A
로 표현 됨
JAVA 예시 코드
<java />
int num = 65;
System.out.println(Integer.toBinaryString(num)); // 2진수
System.out.println((char) num); // 문자
<html />1000001 A
2. 글자가 깨지는 이유
처음에 컴퓨터가 생겼을때는 영어와 일부 특수문자만 지원했었음
다양한 국가에서 컴퓨터를 사용하게되면서, 나라마다 자기들만의 인코딩 방식(대응 규칙)을 만들어서 사용함
인코딩 방식이 다르다보니, EUC-KR
로 작성된 문자를 다른 인코딩 방식으로 읽으려고하니 문자가 깨지는 현상이 발생함

이러한 문제를 해결하기 위해, 모든 언어에 대해 인코딩 할 수 있는 규칙이 만들어짐
- 이 인코딩 방식이 유니코드(
Unicode
) - 유니코드 종류에는
UTF-8
,UTF-16
,UTF-32
가 있음
만약 개발 도중에 문자가 깨지는 현상이 발생한다면, 인코딩 문제인것으로 이해하고 올바른 인코딩 방식을 사용하면 됨
3. 관련 글
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

'ETC' 카테고리의 다른 글
Apache Thrift 란? node와 python으로 구현 (아파치 쓰리프트) (0) | 2021.07.20 |
---|---|
아스키 코드에 대해서 (ASCII) (0) | 2021.03.04 |
Ubuntu 20.04에 Zabbix 5.2 구축하기 (0) | 2021.02.22 |
Ubuntu에 JFrog OSS Artifactory 설치 (0) | 2021.02.21 |
Virtual Box에 Ubuntu 20.04 VM 생성하기 (0) | 2021.02.18 |