최신 운영 체제에서 ASCII 대신 유니코드가 사용되는 이유는 무엇입니까?
답변1
코드 페이지를 전환하지 않고도 현재 사용 중인 모든 문자를 쉽고 균일하게 매핑할 수 있기 때문입니다. 게다가 EASCII나 ANSI(또는 256자의 다른 파생물)를 의미할 수도 있습니다.
예를 들면, 동일한 시스템에서 러시아어와 체코어를 사용하는 것은 코드 페이지가 충돌했기 때문에 얼마 전까지만 해도(즉 유니코드 없이는) 불가능했을 것입니다. 따라서 현재 선택된 코드 페이지에 따라 파일 이름(다른 개체 중에서)이 둘 중 하나에 대해 부적절하게 표시되었을 수 있습니다.
유니코드는 이를 완화하고 다른 개념을 추가합니다. 전반적으로 좋은 개요를 보려면 O'Reilly의 "Unicode explained"를 추천할 수 있습니다. 또한 ASCII(0..127)를 사용하여 모든 영어 문장을 다룰 수 있고 코드 페이지 문제가 존재하지 않는 경우에도 많은 영어 원어민이 말할 수 없는 국제화에 관심이 있는 사람이 작성했습니다. 일반 라틴 문자를 사용하는 한 EASCII를 사용하세요.
구현은 다르지만(데비안은 UTF-8을 사용하고 최신 Windows는 UTF-16을 사용하며 이전 NT 기반 Windows는 UTF-16의 하위 집합인 UCS-2를 사용함) 유니코드는 코드 페이지에 부과된 모든 제한을 제거합니다.그만큼그것을 사용하는 것에 대한 살인자 주장.
프로그래밍에 관심이 있다면 ICU를 살펴보세요.
답변2
짧은 대답: 유니코드는 ASCII보다 더 많은 문자를 지원하기 때문입니다.
에서위키피디아:
유니코드는 실행 가능하고 안정적인 월드 텍스트 인코딩에 대한 요구를 해결하기 위한 것입니다. 유니코드는 대략적으로 전 세계의 모든 언어 문자를 포함하기 위해 16비트로 확장된 "와이드 바디 ASCII"로 설명할 수 있습니다. 적절하게 설계된 설계에서는 문자당 16비트이면 이 목적에 충분합니다.
답변3
UTF-8은 처음부터 ASCII와 역호환되도록 설계되었습니다. 모든 7비트 ASCII 시스템은 즉시 기본 UTF-8 시스템이 되었습니다(비록 기본 ASCII의 127자 이상을 처리할 필요는 없지만).
UTF-8은 여러 바이트를 모아 단일 문자를 구성할 수 있도록 하여 ASCII 시스템을 확장합니다. 이를 통해 컴퓨터는 수십만 개의 서로 다른 문자를 처리할 수 있으며, 그 목표는 모든 언어의 모든 알파벳의 모든 문자를 하나의 큰 문자 테이블에 함께 포함할 수 있는 것입니다.
http://en.wikipedia.org/wiki/UTF-8모든 것이 어떻게 작동하는지 자세히 설명합니다.