유니코드 글꼴 설명 정보

큰 문자 세트로 인해 하나의 유니코드 글꼴이 모든 언어와 플랫폼을 지원할 수 있습니다. 유니코드 쉐이프 정의 파일은 일반 쉐이프 정의 파일과 형식과 구문이 사실상 동일합니다.

다음 코드에서 나타나는 것처럼 주요한 차이점은 글꼴 헤더 구문에 있습니다.

*UNIFONT,6,font-name
above,below,modes,encoding,type,0 

font-name , above , below modes 매개변수는 일반 글꼴에서와 같습니다. 나머지 두 매개변수는 다음과 같이 정의됩니다.

encoding

글꼴 부호화. 다음 정수 값 중 하나를 사용합니다.

0 유니코드

1 팩 다중바이트 1

2 쉐이프 파일

type

글꼴 포함 정보. 글꼴 라이센스가 있는지 여부를 지정합니다. 라이센스가 있는 글꼴은 수정하거나 교체할 수 없습니다. 비트 코드화된 값은 추가할 수 있습니다.

0 글꼴을 포함할 수 있습니다.

1 글꼴을 포함할 수 없습니다.

2 포함이 읽기 전용입니다.

중요한 또 다른 차이점은 코드 7 하위 쉐이프 참조의 처리 방법입니다. 쉐이프 정의에 코드 7 하위 쉐이프 참조가 포함되어 있으면 코드 7 뒤에 오는 데이터는 2바이트 값으로 해석됩니다. 이 값은 쉐이프 설명 헤더의 전체 데이터 바이트 수( defbytes )에 영향을 줍니다. 예를 들어, 다음 쉐이프 설명은 romans.shp 파일에서 찾을 수 있습니다.

*00080,4,keuroRef
7,020AC,0

헤더의 두 번째 필드는 쉐이프 설명에 사용된 총 바이트 수를 나타냅니다. 유니코드 글꼴 설명에 익숙하지 않은 경우 보통 4바이트가 아닌 3바이트를 사용하는 경향이 있지만, 그러면 SHP 파일을 컴파일할 때 오류가 발생할 수 있습니다. 이러한 현상은 참조할 쉐이프 번호가 2바이트 범위(255 미만)에 있지 않은 경우에도 나타납니다. 이 값에 대해 컴파일러는 항상 2바이트를 사용하기 때문에 헤더에 이를 지정해 놓아야 합니다.

유니코드 글꼴 쉐이프 정의와 보통 쉐이프 정의 사이의 유일한 차이점은 쉐이프 번호에 있습니다. 제공된 유니코드 쉐이프 정의는 10진수 값이 아닌 16진수 쉐이프 번호를 사용합니다. 16진수 번호는 필수는 아니지만, 16진수 번호를 사용하면 ₩U+ 컨트롤 문자 값과 함께 쉐이프 번호를 상호 참조하기 쉽습니다.