Как мне заставить «чужие» / специальные символы правильно печатать в данных из API данных YouTube?

#java #youtube #youtube-data-api

#java #YouTube #youtube-data-api

Вопрос:

У меня есть следующий код, который я использую для получения первого комментария к видео:

 public static void main(String[] args) throws IOException
{
    String apiKey = "[redacted]";
        
    YouTube youtube = new YouTube.Builder(Auth.HTTP_TRANSPORT, Auth.JSON_FACTORY, new HttpRequestInitializer() {
        public void initialize(HttpRequest request) throws IOException {
        }
    }).setApplicationName("youtube-view-count-test").build();
        
    System.out.println(getFirstComment(youtube,"-BAvLYgq5m0", apiKey));
}

public static String getFirstComment(YouTube youtube, String videoId, String apiKey) throws IOException
{
    String commentText, author, date;
    YouTube.CommentThreads.List list2 = youtube.commentThreads().list(Arrays.asList("snippet"));
    list2.setVideoId(videoId);
    list2.setKey(apiKey);
    List<CommentThread> c = list2.execute().getItems();
    Comment c2 = c.get(0).getSnippet().getTopLevelComment();
        
    return getFormattedCommentString(c2);
}
 

Но есть проблема: комментарий (и, по-видимому, имя пользователя), я думаю, японский, и когда я печатаю System.out , все, что я получаю, — это куча вопросительных знаков. getFormattedCommentString просто помещает информацию о комментарии (имя пользователя, текст, дату) в один String для распечатки и не делает ничего странного; Я тестировал перед вызовом этого метода, и текст комментария уже был «поврежден». Итак, кто-нибудь знает, что мне нужно сделать, чтобы получить фактический текст комментария в тех случаях, когда текст не является просто ASCII или какой-либо другой кодировкой?

Комментарии:

1. Консоль, на которой вы печатаете текст, не поддерживает вывод UTF-8. При использовании cmd.exe в Windows переключитесь на кодовую страницу 65001. Если ваш вывод находится в IDE, настройте консоль IDE на UTF-8. Вам также может потребоваться установить нелатинские шрифты. Во всем этом слишком много переменных, в зависимости от настроек вашей ОС и программного обеспечения, чтобы дать универсальный ответ.

Ответ №1:

Ха, оказывается, проблема была в моей IDE, Eclipse … установите кодировку рабочей области в UTF-8, и это работает как шарм.