텍스트가 화면에 표시되는 방법에 대한 모든 것을 이해하려고합니다. 일을 간단하게하기 위해 싱글 바이트 인코딩 (유니 코드 없음)을 사용합니다.
내 디스크에는 0에서 255 사이의 값을 갖는 일련의 바이트가 있습니다. 그런 다음 컴퓨터 프로그램에이 바이트를 표시하는 데 사용해야하는 문자 인코딩을 알릴 수 있습니다. ISO-8859-1을 사용할 수 있습니다. 예를 들어 값 0xA4가있는 바이트는 도트 (¤)와 함께 사용됩니다. 또는 ISO-8859-15로 전환 할 수 있습니다. 값이 0xA4 인 내 바이트는 유로 기호 (€)로 정의됩니다.
이것은 모두 이해하기가 쉽습니다. 그러나 문자 인코딩을 변경하는 것과 마찬가지로 기호의 정확한 모양을 정의하기 위해 글꼴을 변경할 수도 있습니다. 이제 글꼴은 모든 문자 인코딩. 따라서 글꼴에는 ¤ 및 € 두 기호가 있어야합니다.
따라서 내 화면에 텍스트를 가져 오는 단계는 분명히 다음과 같습니다.
- 직렬로 바이트 순서 읽기
- 현재 바이트의 숫자 값을 사용하여 문자 인코딩 테이블을 조회합니다.
- [something]을 사용하여 글꼴 파일을 검색하여 2 단계에서 찾은 정확한 모양의 심볼을 얻습니다.
- 글꼴 파일에 정의 된 것과 같은 기호 그리기
3 단계에서 문자 인코딩을 글꼴로 매핑하는 데 사용되는 "무언가"는 무엇입니까? 글꼴 파일은 문자 인코딩에 의존합니까? 따라서 폰트에는 (의사 코드)처럼 작동하는 내장 된 "이중 스위치"메커니즘이 있습니다.
get_symbol(code, encoding) {
switch code{
case 0xA4: switch(encoding) {
case 'ISO-8859-1' : return '¤';
case 'ISO-8859-15': return '€';
}
}
}
?
주어진 바이트 순서와 주어진 문자 인코딩을 글꼴의 실제 기호로 가져 오는 방법에 대한 자세한 내용은 무엇입니까? 이 매핑은 항상 올바른 기호를 제공하기 위해 어떻게 매핑됩니까?