目前,我正在收集基於情緒的推文並進行分析。我收到了emojis的推文,但收集時,它只是帶着問號返回。推文中顯示爲「?」的Emojis在MongoDB中
例如:
原始的tweet(Twitter中):
lipton ice tea
集合(MongoDB中)後:
lipton ice tea?
我使用Twitter 4J Java包用MongoDB的。
目前,我正在收集基於情緒的推文並進行分析。我收到了emojis的推文,但收集時,它只是帶着問號返回。推文中顯示爲「?」的Emojis在MongoDB中
例如:
原始的tweet(Twitter中):
lipton ice tea
集合(MongoDB中)後:
lipton ice tea?
我使用Twitter 4J Java包用MongoDB的。
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從文件中讀取數據時,輸入流等
如果您使用Robomongo,這是正確的一個robomongo問題。
Robomongo在表模式下顯示?
而不是表情符號。
我猜它是編碼問題的某個地方在流水線 –
你在哪裏看到問號?在mongodb shell中?或者當你找回它在你的頁面上顯示? –
另外,「lipton」是大寫。這怎麼發生的? –