2016-10-31 2 views
1

Momentan sammle ich Tweets basierend auf Emotionen und mache die Analyse. Ich habe Tweets mit Emojis, aber beim Sammeln kommt es einfach mit einem Fragezeichen zurück.Emojis in Tweets, die als "?" in MongoDB

Zum Beispiel:

Original-tweet (auf Twitter):

lipton ice tea 

Nach der Sammlung (in MongoDB):

lipton ice tea? 

I Twitter 4j Java-Paket mit MongoDB verwenden.

+0

Ich vermute, es ist Codierungsproblem irgendwo in der Pipeline –

+0

Wo sehen Sie das Fragezeichen? In der Mongodb-Schale? Oder wenn Sie es zurückholen, um es auf Ihrer Seite anzuzeigen? –

+1

Auch "Lipton" ist groß geschrieben. Wie ist es passiert? –

Antwort

0

MongoDB verwendet UTF-8 standardmäßig so, wenn Sie es so konfigurieren nicht zu, es durchaus in der Lage ist, die Emojis zu speichern.

Dieses eine Mal verbrachte ich eine ganze Woche mit dem Kopf gegen die Wand, weil MongoDB keine lateinischen Sonderzeichen speichern würde. Es stellte sich heraus, MongoDB funktionierte gut und es war Log4j derjenige, der nicht zum Drucken von Protokollen mit UTF-8 konfiguriert wurde, so dass alles, was ich sah in den Protokollen war ???? anstelle von ñáçÜ.

Wenn Sie eine Verbindung zu Ihrer MongoDB-Instanz mit Mongo Shell (<mongo installation dir>/bin/mongo.exe in Windows), wie ich, und Abfrage Ihrer Daten, sollten Sie in der Lage, die Emojis zu sehen. Hier ist ein quick reference for the Mongo Shell.

Ihr Problem liegt in Ihrem JSON-Visier oder in der Codierung der Zeichenfolgen, die Sie an MongoDB senden.

In Java könnten Sie die file.encoding Systemeigenschaft UTF-8 festlegen möchten, zu Ihrem Programm stellen Sie sicher, die richtige enconding verwendet, wenn von Dateien zu lesen, Eingangsströme usw.

0

Wenn Sie Robomongo verwenden, das ist ein Robomongo-Problem.

Robomongo zeigt ? anstelle von Emojis im Tabellenmodus an.