CS/Computer Architecture

텍스트 표현

아스키코드

키보드에 있는 모든 기호에 대해 7비트로 표현한 것이다.

처음에는 영어만으로 충분했지만 점차 쓰이는 언어가 늘어나면서 다른 표준이 생겨났다. 한번에 담기에는 비트수가 많이 들었고 당시 비트를 많이 쓰는 비용이 컸기 때문이다. 그 후로 비트 가격이 떨어지면서 유니코드라는 16bit의 새로운 표준이 만들어 졌고, 현재는 21bit 까지 확장 되었다고 한다. 

EBCDIC 코드

IBM이 개발한 확상 이진화 십진 코드로 천공카드 상의 두 "존(zone)"과 "숫자"를 6비트에 인코딩하는 효율적인 방법으로 고안된 기존 IBM BCD 인코딩을 확장하기 위해 만들어졌다.

EBCDIC은 ISO-8859 계열이나 유니코드 같은 ASCII 기반 코드 페이지에 비해 최근 기술적인 관점에서는 장점이 없다. 각 부호는 기술적으로 기발하게 설계된 부분도 있다. 일례로 ASCII와 EBCDIC은 특정 1비트만 보면 대문자인지 소문자인지 구분할 수 있게 되어 있다. 하지만 알파벳이 연속적이지 않은 등 EBCDIC은 ASCII에 비해 사용하기 어려운 측면도 있다. 단일 바이트 확장 ASCII 코드 페이지들처럼 대부분의 EBCDIC 코드 페이지를 사용할 때 하나의 데이터베이스나 텍스트 파일 내에서 최대 언어 2개까지만(즉, 영어와 또 다른 한 언어) 사용할 수 있었다.

제대로 된 다중 언어 문장을 지원하려면 훨씬 더 많은 문자들을 지원하는 시스템이 필요하다. 이를 위해서는 일반적으로 어떤 형태든 유니코드가 지원되어야 한다. 유니코드 컨소시엄에서는 UTF-EBCDIC이라는 EBCDIC 유니코드 변환 형식(Unicode Transformation Format)을 제안했으나 원래 일반적인 시스템 간 정보 교환을 위해 사용할 목적으로 설계되지 않았고, EBCDIC을 사용하는 시스템 상에서도 사용된 바가 없다. IBM 메인프레임은 UTF-16은 지원하나 UTF-EBCDIC은 지원하지 않는다.

다음과 같은 이유로 사용하지 않게 되었다고 한다.

 

유니코드 변환형식 8비트(UTF-8)


유니코드는 문자 코드에 따라 각기 다른 인코딩을 사용해 이런 문제를 해결한다. 인코딩(encoding)은 다른 비트 패턴을 표현하기 위해 사용하는 비트 패턴을 뜻한다. 여기에서 하위 호환성과 효율성이 좋다고 해서 나온 것이 캐나다 프로그래머 롭 파이크가 만든 유니코드 변환 형식 8비트이다. 8비트 덩어리(옥텟이라고 부른다) 의 시퀀스를 활용해서 덩어리 갯수가 1개일 경우 최상위비트가 0, 덩어리 갯수가 늘어날수록 최상위 비트로부터 1이 더 추가되는 로직을 가지고 있다.

 

 

 

출처:위키피디아