유니 코드에서 왜 아랍어 숫자에 대한 두 가지 표현이 있습니까?
문제
나는 unicode @ wikipedia의 사양을 읽고 있었다.아랍어 유니 코드) 그리고 나는 각각의 아랍어 숫자에 2 개의 유니 코드 코드 포인트가 있음을 알 수 있습니다. 예를 들어 1은 u+0661로 정의되고 u+06f1로 정의됩니다.
어떤 것을 사용해야합니까?
해결책
에 따르면 코드 차트, u+0660 .. U+0669는 아랍어-인디 숫자 값 0 ~ 9이고 U+06F0 .. U+06F9는 아랍어-인디 숫자 값 0-9입니다.
Unicode 3.0 책 (5.2는 현재 버전이지만 이러한 것들이 한 번 설정 한 적이 없음)에서 U+066N 시리즈의 글리프는 '아랍어-인디 숫자'로 표시되고 U+06fn 시리즈의 글리프는 표시됩니다. 동부 아라비아 인디 숫자 (페르시아어와 우르두어) '. 또한 참고 사항 :
- U+06F4- '페르시아어와 우르두어의 다른 글리프'
- u+06f5- '페르시아어와 우르두어는 아랍어와 다른 글리프를 공유
- u+06f6- '아랍어와 다른 페르시아 글리프'
- u+06f7- '아랍어와 다른 우르두 글리프'
비교하려고:
- U+066N : ٠١٢٣٤٥٦٧٨٩
- u+06fn : ۰۱۲۳۴۵۶۷۸۹
또는 정보를 제목으로 만들어 확대했습니다.
U+066N : ٠١٢٣٤٥٦٧٨٩
u+06fn : ۰۱۲۳۴۵۶۷۸۹
또는:
U+066n U+06Fn
0 ٠ ۰
1 ١ ۱
2 ٢ ۲
3 ٣ ۳
4 ٤ ۴
5 ٥ ۵
6 ٦ ۶
7 ٧ ۷
8 ٨ ۸
9 ٩ ۹
(그 중 하나를 볼 수 있는지, 어떻게 분명하게 차별화되는지에 따라 브라우저와 컴퓨터에 설치된 글꼴에 따라 다른 것만으로도 4와 6의 차이를 명확하게 볼 수 있습니다. 5는 똑같이 보입니다. 둘 다.)
이 정보를 기반으로, 중동에서 아랍어로 작업하는 경우 U+066n 시리즈의 숫자를 사용하십시오. 페르시아어 또는 우르두어와 함께 일하는 경우 U+06FN 시리즈의 숫자를 사용하십시오. 유니 코드 애플리케이션으로, 하나의 코드 세트를 유효한 숫자로 받아 들여야합니다 (그러나 두 자리 세트를 혼합 한 순서를 문의 할 수 있습니다.
다른 팁
일반적으로 응용 프로그램에서 그러한 정보를 하드 코딩해서는 안됩니다.
- Windows에서는 locale_snativedigits와 함께 getLocaleInfo를 사용할 수 있습니다.
- kcfnumberformatterzeroSymbol을 사용한 Mac cfnumberformattercopyProperty.
- 또는 같은 것을 사용하십시오 ICU.
기본적으로 아랍어-인디 픽 자리를 사용하지 않는 아랍어 국가가 있습니다. 따라서 아랍어 -> 아라비아 인디 픽 숫자라는 직접 매핑은 없습니다.
그리고 사용자는 어쨌든 제어판의 기본값을 변경했을 수 있습니다.
숫자 4, u+0664 또는 u+06F4를 나타내는 것을 선호하는 코드는 무엇입니까?
(? 또는 ۴)?
일관되게하려면 1, 2에 사용하는 코드 및 다른 중복 코드를 사용하는이 선택 가이드를 보자.