diff --git a/youtube_dl/YoutubeDL.py b/youtube_dl/YoutubeDL.py
index b289bd9e2..1bc5cebb6 100644
--- a/youtube_dl/YoutubeDL.py
+++ b/youtube_dl/YoutubeDL.py
@@ -147,6 +147,8 @@ class YoutubeDL(object):
             output = message + terminator
             if 'b' in getattr(self._screen_file, 'mode', '') or sys.version_info[0] < 3: # Python 2 lies about the mode of sys.stdout/sys.stderr
                 output = output.encode(preferredencoding(), 'ignore')
+            if sys.version_info >= (3, 0):
+                output = output.encode('ascii','ignore').decode()
             self._screen_file.write(output)
             self._screen_file.flush()
 
@@ -156,6 +158,8 @@ class YoutubeDL(object):
         output = message + u'\n'
         if 'b' in getattr(self._screen_file, 'mode', '') or sys.version_info[0] < 3: # Python 2 lies about the mode of sys.stdout/sys.stderr
             output = output.encode(preferredencoding())
+        if sys.version_info >= (3, 0):
+            output = output.encode('ascii','ignore').decode()
         sys.stderr.write(output)
 
     def fixed_template(self):
diff --git a/youtube_dl/utils.py b/youtube_dl/utils.py
index 201802cee..3ebebd6bd 100644
--- a/youtube_dl/utils.py
+++ b/youtube_dl/utils.py
@@ -449,6 +449,7 @@ def encodeFilename(s):
 
     # Python 3 has a Unicode API
     if sys.version_info >= (3, 0):
+        s = s.encode('ascii','ignore').decode()
         return s
 
     if sys.platform == 'win32' and sys.getwindowsversion()[0] >= 5: