#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, и это работает как шарм.