Frage

Ich war die Spezifikation von Unicode @ Wikipedia lesen ( Arabisch Unicode ) und ich sehe, dass jeder der arabischen Ziffern hat 2 Unicode-Codepunkte. Für Beispiel 1 ist definiert als U + 0661 und als U + 06F1.

Welche soll ich verwenden?

War es hilfreich?

Lösung

Nach dem Code Charts , U + 0660 .. U + 0669 sind arabisch-indische DIGIT Werte von 0 bis 9, während U + 06F0 .. U + 06F9 sind von 0 bis 9 arabisch-indischen DIGIT Werte VERLÄNGERT.

Im Unicode 3.0 Buch (5.2 ist die aktuelle Version, aber diese Dinge nicht viel ändern, wenn gesetzt), die U + 066n Reihe von Piktogrammen gekennzeichnet ist ‚arabisch-indische Ziffern‘ und die U + 06Fn Reihe von Glyphen ‚Ost-arabisch-indische Ziffern (Persisch und Urdu)‘ gekennzeichnet ist. Es stellt außerdem fest:

  • U + 06F4 - 'unterschiedliche Glyphen in Persisch und Urdu'
  • U + 06F5 - 'Persisch und Urdu Anteil Glyphe anders Arabisch'
  • U + 06F6 - Persische Glyph unterscheidet sich von Arabisch '
  • U + 06F7 - 'Urdu Glyph unterscheidet sich von Arabisch'

Zum Vergleich:

  • U + 066n: 0123456789
  • U + 06Fn: 0123456789

Oder vergrößert, indem die Informationen in einen Titel zu machen:

U + 066n: 0123456789

U + 06Fn: 0123456789

Oder:

     U+066n    U+06Fn
0      ٠         ۰
1      ١         ۱
2      ٢         ۲
3      ٣         ۳
4      ٤         ۴
5      ٥         ۵
6      ٦         ۶
7      ٧         ۷
8      ٨         ۸
9      ٩         ۹

(Egal, ob Sie irgendwelche von denen sehen können, und wie klar sind sie differenziert auf Ihrem Browser abhängen kann und die auf Ihrem Rechner installierten Schriften so viel wie alles andere kann ich den Unterschied auf 4 und 6 deutlich sehen;. 5 ähnlich sieht das gleiche in beiden.)

Auf der Grundlage dieser Informationen, wenn Sie mit Arabisch aus dem Nahen Osten arbeiten, verwenden Sie die U + 066n Reihe von Ziffern; wenn Sie mit persischem oder Urdu arbeiten, verwenden Sie die U + 06Fn Reihe von Ziffern. Als Unicode-Anwendung sollten Sie akzeptieren entweder von Codes als gültige Ziffern gesetzt (aber Sie könnten askance Blick auf eine Sequenz, die die zwei Sätze von Ziffern gemischt - oder Sie können nur gut in Ruhe lassen).

Andere Tipps

Generell sollte man nicht hart Code solche Informationen in Ihrer Anwendung.

  • Unter Windows Sie GetLocaleInfo mit LOCALE_SNATIVEDIGITS verwenden können.
  • Auf dem Mac CFNumberFormatterCopyProperty mit kCFNumberFormatterZeroSymbol.
  • Nutzen Sie so etwas wie ICU .

Es gibt arabische Länder, die die arabisch-indische Ziffern nicht standardmäßig verwenden. So gibt es keine direkte Zuordnung zu sagen Arabisch. -> arabisch-indische Ziffern

Und der Benutzer kann die Standardeinstellungen in der Systemsteuerung ohnehin geändert haben.

Welcher Code bevorzugen Sie für die Darstellung der Nummer 4, U + 0664 oder U + 06F4?

(4 oder 4)?

konsistent zu sein, lassen Sie diese Wahl Führung, die Codes, die Sie für 1 verwenden, 2 und die anderen doppelten Codes.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top