2016-03-31 15 views
3

Ich habe eine Frage in Bezug auf das Finden, ob ein Unicode-Zeichen in der Schriftart auf dem System vorhanden ist.Python3 Überprüfen, ob Unicode-Zeichen nicht vorhanden ist

>>> chr(9966) 
'⛮' 
>>> chr(9955) 
'⛣' 
>>> chr(9955) == chr(9966) 
False 

Im Grunde, was ich zu tun versuchen, ist eine Überprüfung zu tun, wo, wenn der Wert ist. Gibt es eine Möglichkeit in Python herauszufinden, ob der Wert ist?

Edit: Ich verstehe jetzt, dass Unicode-Zeichen nicht inhärent definiert oder undefiniert sind. Aber gibt es eine Möglichkeit zu überprüfen, ob ein Zeichen in einer bestimmten Schriftart existiert? Ich bin auf OS X.

+0

Es wird nicht tatsächlich eine leere Zeichenfolge gedruckt, es wird das Unicode-Zeichen gedruckt (das nicht angezeigt wird). Auf meinem System sehe ich ein Fragezeichen in einer Box. – L3viathan

+6

Was meinst du mit "undefiniert auf dem System"? Meinst du "nicht in der Schriftart vorhanden"? (Für mich sind übrigens beide Charaktere gut). – Carpetsmoker

+7

Dies könnte relevant sein http://StackOverflow.com/Questions/4458696/Finding-Out-What-characters-a-Font-Supports – John

Antwort

0

Dies bezieht sich auf die verwendete Schriftart und ihre Unterstützung für Unicode, nicht Python selbst. Ich habe diese Zeichen nicht auf meinem System.

Verwenden der Bibliothek unidecode, irgendein unbekanntes Zeichen scheint, als [?] zurückgegeben werden:

from unidecode import unidecode 
>>> unidecode(chr(9966)) 
'[?]' 
>>> unidecode(chr(9955)) 
'[?]' 
>>> unidecode(chr(9955)) == unidecode(chr(9966)) 
True 

Diese Methode auf Aussehen verlassen für eine ASCII-Äquivalent zu bekommen. Einige andere Unicode-Zeichen befinden sich in der Nähe von [?], also werden Sie wahrscheinlich einige falsch positive erhalten.

Verwandte Themen