Browse Source

Improve preferred encoding detection method

Ricardo Garcia 16 years ago
parent
commit
f94b636c3e
1 changed files with 9 additions and 9 deletions
  1. 9 9
      youtube-dl

+ 9 - 9
youtube-dl

@@ -33,15 +33,15 @@ def preferredencoding():
 	Returns the best encoding scheme for the system, based on
 	Returns the best encoding scheme for the system, based on
 	locale.getpreferredencoding() and some further tweaks.
 	locale.getpreferredencoding() and some further tweaks.
 	"""
 	"""
-	try:
-		pref = locale.getpreferredencoding()
-		# Mac OSX systems have this problem sometimes
-		if pref == '':
-			return 'UTF-8'
-		return pref
-	except:
-		sys.stderr.write('WARNING: problem obtaining preferred encoding. Falling back to UTF-8.\n')
-		return 'UTF-8'
+	def yield_preferredencoding():
+		try:
+			pref = locale.getpreferredencoding()
+			u'TEST'.encode(pref)
+		except:
+			pref = 'UTF-8'
+		while True:
+			yield pref
+	return yield_preferredencoding().next()
 
 
 class DownloadError(Exception):
 class DownloadError(Exception):
 	"""Download Error exception.
 	"""Download Error exception.