我成功创建了一个项目,通过VB.NET以编程方式上传YouTube视频,该项目已经运行了几个星期,直到今天。
我在上传描述字段中包含德语变音的视频时遇到了问题:一旦我尝试上传这样的视频,我就会收到以下WebException
:
System.Exception:错误请求--->System.Net.WebException:
如果我删除描述字段或变音,上传不会有问题。
我也尝试过用UTF8对字符串进行编码,但没有成功。
今天刚刚发生错误。。。
我今天也出现了同样的错误:日语和韩语都出现了错误,而英语和汉语/台语都很好。
起初,我以为它与utf8有关。几个小时后,我发现YouTube并不依赖ISO 3166-1。你可以在那里得到他们的名单。
将defaultAudioLanguage中的'jp'替换为'ja',将'kr'替换为'sko'修复了该问题。
问题是无法通过http请求解析特殊字符。那么,为什么不编写一个转换器来搜索元音变音符字符,并将其转换为可以解析的字符呢,例如
ä -> a
ë -> e
ö -> o
û -> u
etc...
这将是最简单的方法,尽管您可能可以切换到一些编码,这些编码会自动为您删除它们,然后切换回默认值来构建请求。
我会在VB.Net中使用不同的编码,看看能得到什么。
以下是一些关于.Net可用的编码的文档,如何在VB.Net中对字符串进行UTF-8编码,以及VB.Net的encoding类参考:
http://msdn.microsoft.com/en-us/library/ms404377.aspx
vb.net-将字符串编码为UTF-8
http://msdn.microsoft.com/en-us/library/system.text.encoding.aspx?cs-保存lang=1&cs lang=vb#code-snippet-1