- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
目前,我正在根据情绪收集推文并进行分析。我有带有表情符号的推文,但在收集时,它只是返回一个问号。
例如:
原始推文(在 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
,确保您的程序在读取文件、输入流等时使用正确的编码。
关于java - 推文中的表情符号在 MongoDB 中显示为 "?",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40342118/
我想开发一个 Skype 机器人,它将用户名作为输入,并根据用户输入以相反的字符大小写表示hello username。简而言之,如果用户输入他的名字 james,我的机器人会回复他为 Hello J
我是一名优秀的程序员,十分优秀!