瀏覽代碼

Warn if no locale is set (#1474)

Philipp Hagemeister 12 年之前
父節點
當前提交
34308b30d6
共有 1 個文件被更改,包括 11 次插入0 次删除
  1. 11 0
      youtube_dl/YoutubeDL.py

+ 11 - 0
youtube_dl/YoutubeDL.py

@@ -104,6 +104,17 @@ class YoutubeDL(object):
         self._download_retcode = 0
         self._download_retcode = 0
         self._num_downloads = 0
         self._num_downloads = 0
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
         self._screen_file = [sys.stdout, sys.stderr][params.get('logtostderr', False)]
+
+        if (sys.version_info >= (3,) and sys.platform != 'win32' and
+                sys.getfilesystemencoding() in ['ascii', 'ANSI_X3.4-1968']
+                and not params['restrictfilenames']):
+            # On Python 3, the Unicode filesystem API will throw errors (#1474)
+            self.report_warning(
+                u'Assuming --restrict-filenames isnce file system encoding '
+                u'cannot encode all charactes. '
+                u'Set the LC_ALL environment variable to fix this.')
+            params['restrictfilenames'] = True
+
         self.params = params
         self.params = params
         self.fd = FileDownloader(self, self.params)
         self.fd = FileDownloader(self, self.params)