문자의 개념(영어)
대문자 A~Z : 26문자
소문자 a~z : 26문자
숫자 0~9 : 10문자
--------------------------62개 문자기타 : !,,#,&,^,,* 등등등 : 66문자
그래서
기본문자 : 62 + 66 = 128개 문자예비문자 : 128개 문자 추가
총 : 기본문자 128개 + 예비문자 128개 = 256개이고
0~255의 정수로 매칭시켜 총 256개가 된다.이 256개는 2의 8승이고 2의 8승은 8비트이며 8비트는 1바이트가 된다.
이렇게 128개의 문자와 정수를 1:1 매칭한것을 ASCII CODE라고 한다.
'A' - 65 로 매칭
'a' - 97 로 매칭
'0' - 48 로 매칭
영어와 특수문자는 이렇게 1바이트로 표현이 가능하지만 한국어,영어,일본어 등등 기타언어를 다 표현하기위해서는 256개의 경우의수 == 1바이트로는 부족하게된다.
그래서 등장한게 유니코드(unicode)이다.
unicode
- 멀티바이트를 사용하여 한 문자를 표현.(바이트를 여러개 쓰자는 말이다.)
UTF8(Universal Transformation Format)
유니코드의 한 종류이다. 인터넷에서 사용하는 대부분의 문자코드는 UTF8을 사용한다.
가변길이 1 ~ 4바이트를 사용한다.(1바이트에서 4바이트까지 왔다갔다하며 사용한다는 말)
인코드와 디코드가 사용되는 경우
우리가 문자열 abc를 입력해서 상대방에게 보낸다는 가정을 한다.
- 컴퓨터가 실제로 이해하는것은 숫자뿐이므로 우리가 입력한 abc라는 문자열은 컴퓨터 메모리상에 바이트단위로 바뀌어 각 문자에 1대1 매칭된 숫자인 97 98 99로 저장되게 된다.
(이 과정이 인코드(encode))
- 하지만 상대방의 컴퓨터에서 읽을때는 문자로 와야하기때문에 97 98 99는 다시 1대1 매칭된 문자인 a b c가되고 이것이 합쳐진 문자열인 abc로 변환되서 상대방컴퓨터에서 보여지게된다.
(이 과정이 디코드(decode))