【问题标题】:Description encoding error with YouTube API v3YouTube API v3 的描述编码错误
【发布时间】:2013-06-26 14:38:53
【问题描述】:

我已经成功创建了一个通过 VB.NET 以编程方式上传 YouTube 视频的项目,它已经工作了几个星期直到今天。

我在上传描述字段中包含德语变音符号的视频时遇到问题:当我尝试上传此类视频时,我收到以下WebException

System.Exception: 错误请求 ---> System.Net.WebException:

如果我删除描述字段或元音变音,则上传不会出现问题。

我也尝试过对字符串进行 UTF8 编码,但没有成功。

今天刚刚发生的错误……

【问题讨论】:

  • Java 客户端也发生了同样的事情。它适用于描述中的重音字符。它曾经在 6 月 25 日工作,从 6 月 26 日开始就开始失败。

标签: encoding youtube-api


【解决方案1】:

问题是无法通过 http 请求解析特殊字符。那么为什么不编写一个转换器来搜索变音符号并将它们转换为可以解析的字符,例如

ä -> a
ë -> e
ö -> o
û -> u
etc...

这将是最简单的方法,尽管您可以通过切换到一些会自动为您删除它们的编码来摆脱困境,然后切换回默认值来构建请求。

我会尝试你可以在 VB.Net 中使用的不同编码,看看你能得到什么。

这里有一些文档,介绍了 .Net 可用的编码、如何在 VB .Net 中对字符串进行 UTF-8 编码,以及 VB .Net 的编码类参考:

http://msdn.microsoft.com/en-us/library/ms404377.aspx

vb.net - Encode string to UTF-8

http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1

【讨论】:

  • 您好,因为我写的帖子一直有效 - 如果编码正确,通过 http 请求发送特殊字符应该不是问题。
  • 对,但不知道 YouTube API 的后端是否已被修改,从而破坏了接收特殊字符的能力。它可能与编码无关。
  • 但是应该有一种官方方法可以在这些字段中添加特殊字符 - 我的意思是我可以通过网站在手动更新中添加类似 #Hello@ä 的句子...
  • 就像我说的,API 后端可能不再支持特殊字符,真的没有比使用官方 Google YouTube API 更正式的方式了...
  • 有趣的是——从今天起它又可以工作了(使用特殊字符)——所以希望这是一个错误而不是功能更改:)。
【解决方案2】:

我今天遇到了同样的错误:它发生在日语和韩语中,而英语和中文/台语则很好。

一开始我以为是utf8相关的。几个小时后,我发现 YouTube 不依赖 ISO 3166-1。你可以得到their list there

defaultAudioLanguage 中将 'jp' 替换为 'ja' 和 'kr' 替换为 'ko' 解决了这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-31
    • 2015-04-28
    • 2013-04-18
    • 2011-09-19
    • 2016-11-28
    • 2015-12-12
    • 2019-10-19
    • 1970-01-01
    相关资源
    最近更新 更多