java - 使用 TwitterStream 对推文进行采样是否正常,如 Twitter4J 代码示例中所示,我主要得到的只是问号作为用户名和状态?

标签 java twitter twitter4j twitter-streaming-api

我使用了 Twitter4j 中“代码示例”部分中的代码:

public static void main(String[] args) throws TwitterException, IOException{
    StatusListener listener = new StatusListener(){
        public void onStatus(Status status) {
            System.out.println(status.getUser().getName() + " : " + status.getText());
        }
        public void onDeletionNotice(StatusDeletionNotice statusDeletionNotice) {}
        public void onTrackLimitationNotice(int numberOfLimitedStatuses) {}
        public void onException(Exception ex) {
            ex.printStackTrace();
        }
    };
    TwitterStream twitterStream = new TwitterStreamFactory().getInstance();
    twitterStream.addListener(listener);
    // sample() method internally creates a thread which manipulates TwitterStream and calls these adequate listener methods continuously.
    twitterStream.sample();
}

如您所见,上面的代码中有一个 println,位于方法“onStatus”内。下图显示了我主要从该代码中得到的内容。正常吗?

question marks...question marks everywhere

事实上,我只过滤用户名中没有问号的用户的状态,我几乎什么也没有得到。此外,我还应该过滤位置公开的用户。关于这一点,我还想问有什么区别:

user.isGeoEnabled()

user.getLocation() != ""

最佳答案

您将得到的响应采用 UTF-8 编码 https://dev.twitter.com/tags/utf-8

如果您查看输出中的某些帐户,它们包含非西欧字符 https://twitter.com/tomokichi_koyo 。这些正在破坏输出。

尝试写入文件并使用支持 UTF-8 的编辑器打开。关于将 java 和操作系统设置为默认 UTF-8 有多种答案,但您需要寻找特定的组合 https://stackoverflow.com/search?q=windows+console+java+utf-8

关于java - 使用 TwitterStream 对推文进行采样是否正常,如 Twitter4J 代码示例中所示,我主要得到的只是问号作为用户名和状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34829739/

相关文章:

java - 用于生产的好的断言类? Java 相当于 Groovy 的 PowerAssert?

java - Play 框架无法将 #{set} 标签分配的变量读取到 #i{if} 标签中?

java - 如何将 Maven 嵌入到我的应用程序中?

php - 获取 Twitter 个人资料图片实际链接

python - 使用表情符号使用 tweepy(python)流推文

r - Twitter,错误 : 401 accessing '/1/statuses/sample.json' . 原因:未经授权

java - 如何从 'Twitter4J' 中的用户那里获取电子邮件地址?

java - 绘制图像的一部分(Java)

java - 获取公开 Twitter 个人资料的推文

android - twitter4j:根据 twitter 回调 url 获取访问 token