碎碎念

随便聊聊 · 71 次浏览
球佬是地表最强程序员! 创建于 22天9小时前

我又碰到个终端问题, 又浪费我一天[表情], 给球佬分享下:
我用yt-dlp下载视频, 这个东西是个python的生成的exe, 本来想着先用这个程序先获取一下视频的文件名是什么,再直接用他下载视频,等他下载完,再用获取的文件名去定位这个视频文件. 结果b站视频文件能定位到下载的文件,youtube一直定位不到下载的文件,
最后发现是怎么回事呢.youtube上视频有很多外国语言,比如韩文,这个韩文正常控制台可以输出显示. 但是要输出文件名的话, 走的是c#的那个控制台输出,(quicker里也一样) 因为c#的控制台不是真实的终端. python的程序碰见这种不是真实终端显示内容, 会强制转换编码到系统编码, 这一转换就出问题了,那个uft8或者gbk好像都覆盖不了全部的语言符号, 稍微转错一个字符, 就和原始下载的文件名不一致了... 而yt-dlp下载是直接把网页的原始标题保存为视频文件名, 但是c#控制台会输出转换后的错误名字, 导致两个对不上,实际视频保存名字和屏显输出名字不一致.... 
怎么说呢 ,原本以为python很简单 c#很省心,这俩加一块又不简单又不省心...


回复内容
暂无回复
回复主贴