2016-10-31 47 views
1

目前,我正在收集基於情緒的推文並進行分析。我收到了emojis的推文,但收集時,它只是帶着問號返回。推文中顯示爲「?」的Emojis在MongoDB中

例如:

原始的tweet(Twitter中):

lipton ice tea 

集合(MongoDB中)後:

lipton ice tea? 

我使用Twitter 4J Java包用MongoDB的。

+0

我猜它是編碼問題的某個地方在流水線 –

+0

你在哪裏看到問號?在mongodb shell中?或者當你找回它在你的頁面上顯示? –

+1

另外,「lipton」是大寫。這怎麼發生的? –

回答

0

MongoDB默認使用UTF-8,所以除非你配置了而不是,它完全能夠存儲表情符號。

這一次我花了整整一週的時間把我的頭撞牆,因爲MongoDB不會存儲拉丁特殊字符。結果MongoDB工作得很好,它是Log4j沒有配置爲使用UTF-8打印日誌的日誌,所以我在日誌中看到的只有????而不是ñáçÜ

如果您使用Mongo Shell(Windows中的<mongo installation dir>/bin/mongo.exe)連接到您的MongoDB實例並像查詢過那樣查詢您的數據,您應該能夠看到表情符號。這是一個quick reference for the Mongo Shell

你的問題在於你的JSON遮陽板,或者在你發送給MongoDB的字符串的編碼中。

在Java中,你可能希望將file.encoding系統屬性設置爲UTF-8,以確保您的程序使用enconding從文件中讀取數據時,輸入流等

0

如果您使用Robomongo,這是正確的一個robomongo問題。

Robomongo在表模式下顯示?而不是表情符號。