ASCII와 유니코드 텍스트의 차이점은 무엇입니까?

ASCII와 유니코드 텍스트의 차이점은 무엇입니까?

ASCII와 유니코드는 모두 텍스트의 디지털 표현, 특히 텍스트를 구성하는 문자를 나타내는 표준입니다. 그러나 두 표준은 상당히 다르며 많은 속성이 각각의 생성 순서를 반영합니다.





미국 대 우주

ASCII(American Standard Code for Information Interchange)는 당연히 영어 알파벳으로 작성되어 미국인 청중을 수용합니다. A-Z 및 a-z와 같은 악센트가 없는 문자와 소수의 구두점 기호 및 제어 문자를 처리합니다.





특히, 다음과 같이 다른 언어에서 채택된 차용어를 표현할 방법이 없습니다. 커피 ASCII에서 악센트가 있는 문자를 대체하여 영어화하지 않고(예: 카페 ). 현지화 된 ASCII 확장은 다양한 언어의 요구 사항을 충족시키기 위해 개발되었지만 이러한 노력은 상호 운용성을 어렵게 만들고 ASCII의 기능을 분명히 확장했습니다.





대조적으로, 유니코드(Universal Coded Character Set)는 야망 규모의 반대쪽 끝에 있습니다. 유니코드는 고대 언어와 모두가 좋아하는 표현 기호 세트인 이모지를 포괄하는 범위에서 가능한 한 많은 세계 쓰기 시스템을 수용하려고 시도합니다.

문자 집합 또는 문자 인코딩?

간단히 말해서 문자 집합은 문자(예: A-Z)의 선택이며 문자 인코딩은 문자 집합과 디지털 방식으로 표현할 수 있는 값(예: A=1, B=2) 간의 매핑입니다.



ASCII 표준은 실제로 나타내는 문자 집합과 각 문자를 숫자 값으로 매핑하는 방법을 정의합니다.

대조적으로, 유니코드라는 단어는 여러 상황에서 다른 것을 의미하는 데 사용됩니다. ASCII와 같이 문자 집합과 여러 인코딩을 나타내는 포괄적인 용어로 생각할 수 있습니다. 그러나 여러 인코딩이 있기 때문에 유니코드라는 용어는 문자가 매핑되는 방식보다는 전체 문자 집합을 나타내는 데 자주 사용됩니다.





크기

범위로 인해 유니코드는 ASCII보다 훨씬 더 많은 문자를 나타냅니다. 표준 ASCII는 7비트 범위를 사용하여 128개의 고유한 캐릭터 . 반면 유니코드는 너무 커서 이야기하기 위해 다른 용어를 사용해야 합니다!

유니코드는 1,111,998 주소 지정 가능 코드 포인트. 코드 포인트는 문자를 위해 예약된 공간과 대략 유사하지만 세부 사항을 탐구하기 시작할 때 상황은 훨씬 더 복잡합니다!





더 유용한 비교는 현재 지원되는 스크립트(또는 쓰기 시스템)의 수입니다. 물론 ASCII는 영어 알파벳, 본질적으로 라틴어 또는 로마 문자만 처리합니다. 2020년에 생산된 유니코드 버전은 훨씬 더 나아가 총 154개의 스크립트에 대한 지원을 포함합니다.

저장

ASCII의 7비트 범위는 각 문자가 단일 8비트 바이트에 저장됨을 의미합니다. 스페어 비트는 표준 ASCII에서 사용되지 않습니다. 이것은 크기 계산을 간단하게 만듭니다. 텍스트의 길이(문자)는 파일의 크기(바이트)입니다.

다음 bash 명령 시퀀스로 이를 확인할 수 있습니다. 먼저 12개의 텍스트가 포함된 파일을 만듭니다.

Windows 10에서 플래시 드라이브를 여는 방법
$ echo -n 'Hello, world' > foo

텍스트가 ASCII 인코딩인지 확인하려면 다음을 사용할 수 있습니다. 파일 명령:

$ file foo
foo: ASCII text, with no line terminators

마지막으로 파일이 차지하는 정확한 바이트 수를 얻으려면 다음을 사용합니다. 상태 명령:

$ stat -f%z foo
12

유니코드 표준은 훨씬 더 넓은 범위의 문자를 다루기 때문에 유니코드 파일은 자연스럽게 더 많은 저장 공간을 차지합니다. 정확히 얼마는 인코딩에 따라 다릅니다.

ASCII로 표현할 수 없는 문자를 사용하여 이전의 동일한 명령 집합을 반복하면 다음이 제공됩니다.

$ echo -n '€' > foo
$ file foo
foo: UTF-8 Unicode text, with no line terminators
$ stat -f%z foo
3

해당 단일 문자는 유니코드 파일에서 3바이트를 차지합니다. ASCII 파일은 선택한 문자(€)를 저장할 수 없기 때문에 bash는 자동으로 UTF-8 파일을 생성했습니다. UTF-8은 단연코 유니코드에 대한 가장 일반적인 문자 인코딩입니다. UTF-16과 UTF-32는 두 가지 대체 인코딩이지만 훨씬 덜 사용됩니다.

UTF-8은 가변 너비 인코딩입니다. 즉, 서로 다른 코드 포인트에 대해 서로 다른 저장 공간을 사용합니다. 각 코드 포인트는 1바이트에서 4바이트 사이를 차지하며 더 일반적인 문자는 더 적은 공간을 필요로 하여 일종의 기본 제공 압축을 제공합니다. 단점은 주어진 텍스트 청크의 길이 또는 크기 요구 사항을 결정하는 것이 훨씬 더 복잡해진다는 것입니다.

ASCII는 유니코드이지만 유니코드는 ASCII가 아닙니다.

이전 버전과의 호환성을 위해 처음 128개의 유니코드 코드 포인트는 동등한 ASCII 문자를 나타냅니다. UTF-8은 이러한 각 문자를 단일 바이트로 인코딩하므로 모든 ASCII 텍스트도 UTF-8 텍스트입니다. 유니코드는 ASCII의 상위 집합입니다.

그러나 위에 표시된 것처럼 많은 유니코드 파일은 ASCII 컨텍스트에서 사용할 수 없습니다. 범위를 벗어난 모든 문자는 예상치 못한 방식으로 표시되며, 종종 의도한 것과 완전히 다른 대체 문자로 표시됩니다.

현대적인 사용법

대부분의 경우 ASCII는 대부분 레거시 표준으로 간주됩니다. 예를 들어 복잡한 유니코드에 대한 완전한 지원이 필요하지 않은 라틴 스크립트만 지원하는 상황에서도 일반적으로 UTF-8을 사용하고 ASCII 호환성을 활용하는 것이 더 편리합니다.

스냅에서 위치를 보내는 방법

특히 HTML5의 기본값인 UTF-8을 사용하여 웹페이지를 저장하고 전송해야 합니다. 이것은 라틴어 1로 대체되기 전에 기본적으로 ASCII를 처리했던 이전 웹과 대조됩니다.

변화하는 표준

ASCII의 마지막 개정은 1986년에 이루어졌습니다.

대조적으로 유니코드는 매년 계속 업데이트됩니다. 새로운 스크립트, 캐릭터, 특히 새로운 이모티콘이 정기적으로 추가됩니다. 이들 중 극히 일부만 할당된 상태에서 전체 문자 집합은 가까운 장래에 계속 성장할 것입니다.

관련된: 가장 인기 있는 100가지 이모티콘 설명

ASCII 대 유니코드

ASCII는 수십 년 동안 그 목적을 수행했지만 이제 유니코드는 레거시 시스템 이외의 모든 실용적인 목적을 위해 이를 효과적으로 대체했습니다. 유니코드는 더 크므로 표현력이 뛰어납니다. 이는 전 세계적인 공동 작업을 나타내며 약간의 복잡성을 희생하더라도 훨씬 더 큰 유연성을 제공합니다.

공유하다 공유하다 트위터 이메일 ASCII 텍스트란 무엇이며 어떻게 사용됩니까?

ASCII 텍스트는 비밀스러워 보이지만 인터넷에서 많이 사용됩니다.

다음 읽기
관련 항목
  • 기술 설명
  • 이모티콘
  • 특수 용어
  • 웹 문화
  • 유니코드
저자 소개 바비 잭(게시된 기사 58건)

Bobby는 거의 20년 동안 소프트웨어 개발자로 일한 기술 애호가입니다. 그는 게임에 열정적이며 Switch Player Magazine에서 리뷰 편집자로 일하고 있으며 온라인 퍼블리싱 및 웹 개발의 모든 측면에 몰두하고 있습니다.

바비 잭이 참여한 작품 더보기

뉴스레터 구독

뉴스레터에 가입하여 기술 팁, 리뷰, 무료 전자책 및 독점 거래를 확인하십시오!

구독하려면 여기를 클릭하세요.