推文中的表情符号显示为"?"在MongoDB中

时间:2016-10-31 12:22:52

标签: java mongodb emoji tweets

目前,我正在根据情绪收集推文并进行分析。我有与emojis的推文,但在收集时,它只返回一个问号。

例如:

原始推文(在Twitter上):

lipton ice tea

收集后(在MongoDB中):

lipton ice tea?

我正在使用MongoDB的Twitter 4j Java包。

2 个答案:

答案 0 :(得分: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。

答案 1 :(得分:0)

如果你正在使用Robomongo,这是一个robomongo问题。

Robomongo在表格模式下显示?而不是表情符号。