Frage Zeigen Sie Unicode-Zeichen in TextView Android an


Es gibt eine Reihe von Posts im Internet über dieses Thema, aber keine von ihnen war in der Lage, das Problem zu isolieren und zu lösen.

Ich versuche, einige spezielle UTF-8-kodierte Symbole zu zeigen, die in einer SQLite-Datenbank mit einem TextView gespeichert sind, aber alles, was es zeigt, sind Kästchen. Ich verstehe, was das bedeutet, dass die richtige Schriftart nicht installiert ist. Aber wenn ich diese Symbole unter Verwendung der Arial-Schriftart auf dem Mac drucke, funktioniert es.

Ich versuche eine Arial-Schrift auf dem Gerät und dem Emulator zu verwenden.

Irgendwelche Ratschläge.


9
2017-10-26 02:29


Ursprung


Antworten:


Es funktioniert auf Ihrem Mac, da die von Ihrem Mac verwendete Schriftart diese Sonderzeichen enthält. Es wäre unmöglich, eine Fontdatei zu erstellen, die alle in Unicode definierten Zeichen enthält. Chinesische Schriften sind ein gutes Beispiel: Keiner von ihnen enthält alle ~ 60.000 bekannten chinesischen Schriftzeichen, weil die Schriftdatei riesig und unbrauchbar wäre.

Sie könnten versuchen, die Schriftart von Ihrem Mac auf Android (möglicherweise Urheberrechtsfragen - versuchen, eine freie Schriftart, die die Zeichen enthält: packen Sie die Datei (TTF) in Ihrer Anwendung, zum Beispiel im Ordner / Assets und dann in Ihrer Anwendung Laden Sie diese Schriftart mit

TypeFace typeFace = Typeface.createFromAsset (assetmanager, "fontfile.ttf");

Sie können dies dann in einem TextView wie folgt verwenden:

TextView-Ansicht = (TextView) findById (R.id.mytext);

view.setTypeFace (typeFace);


7
2018-02-09 20:59



Wenn ich Ihre Situation richtig verstehe, sollten Sie die Methode StringEscapeUtils.unescapeXml () in Betracht ziehen. Es ist in der common-lang.jar Datei verfügbar hier: http://commons.apache.org/lang/

Es wird codierte Symbole (zum Beispiel für einen Apostroph) nehmen und Sie zu einem richtigen Zeichen bringen.


3
2018-01-29 00:05