아스키(ASCII)코드와 유니코드(unicode)

쓰옹·2022년 11월 30일
0

📙 Java 잡아🤏

목록 보기
14/25

컴퓨터는 0과 1로만 표현할 수 있기 때문에 문자 또한 0과 1의 조합으로 나타내야 한다.

문자를 컴퓨터 내부에서 표현할 때 특정 정수값으로 정하자고 약속을 하는데 이런 코드 값을 모아 둔 것을 문자세트라고 한다.

  • 문자 인코딩 : 문자 --> 정해진 코드 값
  • 문자 디코딩 : 코드값 --> 문자

그런데 강의로 배울 때는 정해진 코드값을 아스키코드라고 하고
책에서는 유니코드라고 하는데 이 두개의 차이를 알고싶어 공부를 해봤다.



아스키(ASCII)코드


미국정보교환표준부호(영어: American Standard Code for Information Interchange), 또는 줄여서 ASCII( /ˈæski/, 아스키)는 영문 알파벳을 사용하는 대표적인 문자 인코딩이다. 아스키는 컴퓨터와 통신 장비를 비롯한 문자를 사용하는 많은 장치에서 사용되며, 대부분의 문자 인코딩이 아스키에 기초를 두고 있다.

아스키는 7비트 인코딩으로, 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다. 제어 문자들은 역사적인 이유로 남아 있으며 대부분은 더 이상 사용되지 않는다. 출력 가능한 문자들은 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.     출처: 위키백과

  • 영문자, 숫자, 특수문자를 1바이트로 표현할 수 있다.
    == 아스키코드는 1바이트만 사용
  • 그러나 영어가 아닌 다른 언어의 문자는 2바이트 이상 사용하게 되므로
  • 각 언어의 표준 인코딩을 정의해 놓은 것이 유니코드이다.



유니코드(unicode)


초창기에는 문자 코드는 ASCII의 로마자 위주 코드였고, 1바이트의 남은 공간에 각 나라가 자국 문자를 할당하였다. 하지만 이런 상황에서 다른 국가에 이메일을 보냈더니 글자가 와장창 깨졌던 것. 인터넷 웹페이지도 마찬가지였다. 이에 따라 4바이트(32비트, 약 42억 자)의 넉넉한 공간에 세상의 모든 문자를 할당한 결과물이 이것이다.

현재의 유니코드는 지구상에서 통용되는 대부분의 문자들을 담고 있다. 여기에는 언어를 표기할 때 쓰는 문자는 물론, 악보 기호, 이모지, 태그, 마작이나 도미노 기호 같은 것들도 포함된다.            출처: 나무위키

  • 유니코드의 1바이트는 아스키 코드값과 호환된다.
  • 자바는 유니코드에 기반하여 문자를 표현한다.


java


public class CharacterEx {
    public static void main(String[] args) {
        // 아스키코드
        char ch1 = 'A';
        System.out.println(ch1);
        System.out.println((int)ch1);  // 65; 

        char ch2 = 66;
        System.out.println(ch2);  // B

        int ch3 = 67;
        System.out.println(ch3);
        System.out.println((char)ch3);  // C
        
        //유니코드
        char ch4 = '한';
        char ch5 = '\uD55C';

        System.out.println(ch4);  // 한
        System.out.println(ch5);  // 한
    }
}
profile
기록하자기록해!

0개의 댓글