숫자 셰이프
아랍어와 다른 많은 언어는 컴퓨터에서 가장 자주 사용되는 기존의 서양 숫자와 다른 숫자에 대한 고전적인 모양을 가지고있다. 이러한 셰이프의 이름이 모호하지 않도록 이 문서에서는 유니코드 표준의 다음 이름을 사용합니다.
숫자의 유니코드 이름 | 사용되는 국가/지역 |
---|---|
유럽 숫자 | 유럽, 미주 및 기타 여러 국가/지역 |
Arabic-Indic 숫자 | 아랍어 국가/지역(많은 사람들이 유럽 숫자를 사용하지만) |
기타 국가 숫자: 인덱스 숫자, 태국어 숫자 등 | 다양한 국가/지역 |
유니코드는 각 숫자 셰이프에 대해 별도의 코드 포인트를 제공합니다. 따라서 특수 언어 숫자 셰이프에 액세스하기 위해 애플리케이션은 U+0030부터 U+0039까지 위의 숫자와 관련된 유니코드 문자 코드를 사용할 수 있습니다. 이러한 코드는 항상 글꼴 가용성에 따라 적절한 도형으로 표시됩니다.
유니코드 문자 코드 U+0030~U+0039는 명목상 유럽 숫자 0~9를 나타내지만 숫자 셰이프를 변경할 수 있습니다. GDI 및 DirectWrite 텍스트 API는 애플리케이션이 이 동작을 제어하는 메커니즘을 제공합니다. (instance ScriptApplyDigitSubstitution 또는 IDWriteTextAnalysisSink::SetNumberSubstitution을 참조하세요.) 일부 셸 컨트롤 및 사용자 인터페이스 프레임워크의 동작은 숫자 대체에 대한 사용자 로캘 설정에 응답할 수 있습니다. LOCALE_IDIGITSUBSTITUTION LCTYPE을 사용하여 다른 로캘에 대한 기본 숫자 대체 설정 또는 숫자 대체에 대한 현재 사용자의 데스크톱 설정을 가져올 수 있습니다.
네이티브 숫자
네이티브 숫자는 제어판 지역 및 언어 옵션 부분의 Number 속성 시트에서 사용자가 선택한 숫자 셰이프입니다. 사용자가 선호하는 숫자 프레젠테이션을 찾기 위해 애플리케이션은 로캘 정보를 나타내는 LOCALE_SNATIVEDIGITS 상수와 함께 GetLocaleInfo 또는 GetLocaleInfoEx 함수를 사용합니다.
참고
일반적으로 유니코드 숫자 코드는 런타임 운영 체제 루틴에서 생성됩니다. 따라서 애플리케이션이 LOCALE_SNATIVEDIGITS 적절하게 검사하려면 공용 런타임 운영 체제를 업그레이드해야 합니다.
숫자 대체
애플리케이션은 숫자 대체를 사용하여 U+0030부터 U+0039까지 숫자를 인쇄하는 방법을 운영 체제에 알릴 수 있습니다. LOCALE_IDIGITSUBSTITUTION 상수는 이 작업을 제어합니다.
단일 함수에 대한 숫자 셰이핑
ExtTextOut, GetCharacterPlacement 및 GCP_RESULTS 함수에는 함수 호출 기간 동안 유니코드 코드 U+0030~U+0039의 대체를 제어하는 플래그가 있습니다. 이러한 플래그는 제어판 지역 설정을 재정의하지만 설정을 다시 설정하지는 않습니다. 또한 유니코드 코드 NADS 및 NODS를 재정의하지 않습니다. 다음 플래그를 사용할 수 있습니다.
플래그 | 사용된 숫자 | 사용 대상 |
---|---|---|
ETO_NUMERICSLATIN | 유럽 숫자 | ExtTextOut |
ETO_NUMERICSLOCAL | 로캘에 적합한 숫자 | ExtTextOut |
GCP_NUMERICSLATIN | 유럽 숫자 | GetCharacterPlacement |
GCP_NUMERICSLOCAL | 로캘에 적합한 숫자 | GetCharacterPlacement |
GCPCLASS_LATINNUMBER | 유럽 숫자 | GCP_RESULTS |
GCPCLASS_LOCALNUMBER | 로캘에 적합한 숫자 | GCP_RESULTS |
관련 항목