ASCII, UTF-8, ISO-8859…이 이상한 이름이 떠 다니는 것을 보았을 지 모르지만 실제로는 무엇을 의미합니까? 문자 인코딩이 무엇인지,이 두문자어가 화면에 보이는 일반 텍스트와 어떻게 관련되는지 설명하면서 계속 읽으십시오.
기본 구성 요소
문어에 대해 이야기 할 때 우리는 글자가 단어의 구성 요소라고 이야기하고 문장, 단락 등을 만듭니다. 문자는 소리를 나타내는 기호입니다. 언어에 대해 이야기 할 때 어떤 의미를 형성하기 위해 함께 모이는 소리 그룹에 대해 이야기하는 것입니다. 각 언어 시스템에는 이러한 의미를 제어하는 복잡한 규칙 및 정의 세트가 있습니다. 단어가 있다면 그 언어가 어떤 언어인지 모르고 그 언어를 사용하는 다른 사람들과 함께 사용하지 않는 한 소용이 없습니다.
(Grantha, Tulu 및 Malayalam 스크립트 비교, Image from 위키 백과 )
컴퓨터 세계에서는 "캐릭터"라는 용어를 사용합니다. 문자는 특정 매개 변수에 의해 정의되는 일종의 추상적 인 개념이지만 의미의 기본 단위입니다. 라틴어‘A’는 그리스어‘알파’또는 아랍어‘알 리프’와 다릅니다. 문맥이 다르기 때문입니다. 서로 다른 언어에서 왔고 발음도 약간 다르기 때문에 서로 다른 문자라고 말할 수 있습니다. 문자의 시각적 표현을 "글리프"라고하고 다양한 글리프 세트를 글꼴이라고합니다. 캐릭터 그룹은 "세트"또는 "레퍼토리"에 속합니다.
단락을 입력하고 글꼴을 변경하면 문자의 음성 값이 변경되는 것이 아니라 모양이 변경됩니다. 그것은 단지 화장품 일뿐입니다 (중요하지는 않습니다!). 고대 이집트어와 중국어와 같은 일부 언어에는 표의 문자가 있습니다. 이것들은 소리가 아닌 전체적인 생각을 나타내며 그들의 발음은 시간과 거리에 따라 달라질 수 있습니다. 한 캐릭터를 다른 캐릭터로 대체하면 아이디어를 대체하는 것입니다. 단순히 글자를 바꾸는 것이 아니라 표의 문자를 바꾸는 것입니다.
문자 인코딩
(이미지 출처 : 위키 백과 )
키보드로 무언가를 입력하거나 파일을로드 할 때 컴퓨터는 표시 할 내용을 어떻게 인식합니까? 그것이 문자 인코딩의 목적입니다. 컴퓨터의 텍스트는 실제로 문자가 아니라 일련의 영숫자 값입니다. 문자 인코딩은 맞춤법이 어떤 소리가 어떤 문자에 해당하는지 지시하는 것과 같이 값이 어떤 문자에 해당하는 키 역할을합니다. 모스 부호는 일종의 문자 인코딩입니다. 경고음과 같은 길고 짧은 단위 그룹이 문자를 나타내는 방법을 설명합니다. 모스 부호에서 문자는 영문자, 숫자 및 마침표입니다. 문자, 숫자, 악센트 표시, 구두점, 국제 기호 등으로 변환되는 컴퓨터 문자 인코딩이 많이 있습니다.
이 주제에서 종종 "코드 페이지"라는 용어도 사용됩니다. 본질적으로 특정 회사에서 사용하는 문자 인코딩이며 종종 약간의 수정이 있습니다. 예를 들어, Windows 1252 코드 페이지 (이전의 ANSI 1252)는 ISO-8859-1의 수정 된 형식입니다. 대부분은 동일한 시스템에 고유 한 표준 및 수정 된 문자 인코딩을 참조하기위한 내부 시스템으로 사용됩니다. 초기에는 컴퓨터가 서로 통신하지 않기 때문에 문자 인코딩이 그다지 중요하지 않았습니다. 인터넷이 눈에 띄고 네트워킹이 일반화되면서 우리가 깨닫지도 못한 채 일상 생활에서 점점 더 중요해졌습니다.
다양한 유형
(이미지 출처 : 사라 소식 )
많은 다른 문자 인코딩이 있으며 그에 대한 많은 이유가 있습니다. 사용하기로 선택한 문자 인코딩은 요구 사항에 따라 다릅니다. 러시아어로 통신하는 경우 키릴 자모를 잘 지원하는 문자 인코딩을 사용하는 것이 좋습니다. 한국어로 의사 소통을한다면 한글과 한자를 잘 표현하는 것을 원할 것입니다. 수학자라면 모든 과학 및 수학 기호와 그리스 및 라틴 글리프가 잘 표현 된 것을 원합니다. 당신이 장난 꾸러기라면 아마 거꾸로 된 텍스트 . 또한 이러한 유형의 문서를 모든 사람이 볼 수 있도록하려면 매우 일반적이고 쉽게 액세스 할 수있는 인코딩이 필요합니다.
더 일반적인 몇 가지를 살펴 보겠습니다.
(ASCII 테이블 발췌, 이미지 asciitable.com )
- ASCII – 정보 교환을위한 미국 표준 코드는 이전 문자 인코딩 중 하나입니다. 원래는 전신 코드를 기반으로 고안되었으며 시간이 지남에 따라 더 많은 기호와 현재 구식이 아닌 인쇄되지 않은 제어 문자를 포함하도록 발전했습니다. 악센트 부호가없는 라틴 알파벳으로 제한되어 있으므로 현대 시스템 측면에서 얻을 수있는 것만 큼 기본적인 것일 수 있습니다. 7 비트 인코딩은 128 자만 허용하므로 전 세계적으로 여러 가지 비공식 변형이 사용되고 있습니다.
- ISO-8859 – 국제 표준화기구 (International Organization for Standardization)에서 가장 널리 사용되는 문자 인코딩 그룹은 번호 8859입니다. 각 특정 인코딩은 숫자로 지정되며 종종 설명적인 모니 커가 앞에 붙습니다. ISO-8859-3 (라틴 -3), ISO-8859-6 (라틴 / 아랍어). ASCII의 상위 집합으로 인코딩의 처음 128 개 값이 ASCII와 동일합니다. 그러나 8 비트이고 256 자까지 허용하므로 여기서부터 구축되고 훨씬 더 광범위한 문자 배열을 포함하며 각 특정 인코딩은 서로 다른 기준 집합에 중점을 둡니다. Latin-1은 악센트 부호가있는 문자와 기호를 포함했지만 나중에 Euro 기호와 같은 업데이트 된 글리프를 포함하는 Latin-9라는 수정 된 세트로 대체되었습니다.
(티베트어 스크립트, 유니 코드 v4, unicode.org )
- 유니 코드 –이 인코딩 표준은 보편성을 목표로합니다. 현재 여러 블록으로 구성된 93 개의 스크립트가 포함되어 있으며 더 많은 작업이 진행 중입니다. 유니 코드는 글리프를 직접 코딩하는 대신 각 값이 "코드 포인트"로 더 이동한다는 점에서 다른 문자 세트와 다르게 작동합니다. 이들은 문자에 해당하는 16 진수 값이지만 글리프 자체는 웹 브라우저와 같은 프로그램에서 분리 된 방식으로 제공됩니다. 이러한 코드 포인트는 일반적으로 다음과 같이 표시됩니다. U + 0040 ( ‘@’ ). 유니 코드 표준의 특정 인코딩은 UTF-8 및 UTF-16입니다. UTF-8은 ASCII와의 최대 호환성을 허용합니다. 8 비트이지만 대체 메커니즘을 통해 모든 문자와 문자 당 여러 쌍의 값을 허용합니다. UTF-16은 표준과의 완전한 16 비트 호환성을 위해 완벽한 ASCII 호환성을 제거합니다.
- ISO-10646 – 이것은 실제 인코딩이 아니라 ISO에 의해 표준화 된 유니 코드의 문자 집합입니다. HTML에서 사용하는 문자 레퍼토리이기 때문에 가장 중요합니다. 왼쪽에서 오른쪽으로 스크립팅과 함께 데이터 정렬 및 오른쪽에서 왼쪽을 허용하는 유니 코드에서 제공하는 고급 기능 중 일부가 누락되었습니다. 그래도 다양한 스크립트를 사용할 수 있고 브라우저가 글리프를 해석 할 수 있기 때문에 인터넷에서 사용하기에 매우 적합합니다. 이렇게하면 현지화가 다소 쉬워집니다.
어떤 인코딩을 사용해야합니까?
음, ASCII는 대부분의 영어 사용자에게 작동하지만 다른 많은 사람들에게는 작동하지 않습니다. 대부분의 서유럽 언어에서 작동하는 ISO-8859-1을 자주 보게 될 것입니다. 다른 버전의 ISO-8859는 키릴 자모, 아랍어, 그리스어 또는 기타 특정 스크립트에서 작동합니다. 그러나 동일한 문서 또는 동일한 웹 페이지에 여러 스크립트를 표시하려는 경우 UTF-8은 훨씬 더 나은 호환성을 허용합니다. 또한 적절한 구두점, 수학 기호 또는 다음과 같은 일반 문자를 사용하는 사람들에게도 매우 효과적입니다. 사각형과 체크 박스 .
(하나의 문서에있는 여러 언어, 스크린 샷 gujaratsamachar.com )
그러나 각 세트에는 단점이 있습니다. ASCII는 구두점에 제한이 있으므로 인쇄 상 올바른 편집에 대해 매우 잘 작동하지 않습니다. 이상한 글리프 조합을 위해 Word에서 복사 / 붙여 넣기를 입력 한 적이 있습니까? 이것이 ISO-8859의 결점이거나 더 정확하게는 OS 별 코드 페이지와의 상호 운용성입니다 (우리는 여러분, Microsoft!). UTF-8의 주요 단점은 응용 프로그램 편집 및 게시에 대한 적절한 지원이 없다는 것입니다. 또 다른 문제는 브라우저가 종종 UTF-8로 인코딩 된 문자의 바이트 순서 표시를 해석하지 않고 표시한다는 것입니다. 이로 인해 원하지 않는 글리프가 표시됩니다. 물론 웹 페이지에서 올바르게 선언 / 참조하지 않고 하나의 인코딩을 선언하고 다른 문자를 사용하면 브라우저가 올바르게 렌더링하고 검색 엔진이 적절하게 색인을 생성하기가 어렵습니다.
자신의 문서, 원고 등의 경우 작업을 완료하는 데 필요한 모든 것을 사용할 수 있습니다. 그러나 웹이 진행되는 한 대부분의 사람들은 바이트 순서 표시를 사용하지 않는 UTF-8 버전을 사용하는 데 동의하는 것으로 보이지만 만장일치가 아닙니다. 보시다시피 각 문자 인코딩에는 고유 한 용도, 컨텍스트, 강점과 약점이 있습니다. 최종 사용자는이 문제를 처리 할 필요가 없을 것입니다.하지만 이제 선택하면 한 단계 더 나아갈 수 있습니다.