From a52072d79ef11faf5a004a5fe685919e36d94cc4 Mon Sep 17 00:00:00 2001 From: Peter Landgren Date: Thu, 16 Sep 2010 12:23:16 +0000 Subject: [PATCH] Issue 4212, Win problems with media path/file name with non latin. svn: r15903 --- src/Utils.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/Utils.py b/src/Utils.py index 6c4c01c33..6ccf68ecb 100644 --- a/src/Utils.py +++ b/src/Utils.py @@ -37,6 +37,8 @@ import random import time import shutil import uuid +import logging +LOG = logging.getLogger(".") #------------------------------------------------------------------------- # @@ -331,12 +333,23 @@ def get_unicode_path(path): :rtype: unicode :returns: The Unicode version of path. """ - # Don't make unicode of unicode as this does not work - # with parameter for encoding. - if type(path) == type(u""): + # Don't make unicode of unicode + if isinstance(path, unicode): return path - return unicode(path, sys.getfilesystemencoding()) + if constfunc.win(): + # in windows filechooser returns officially utf-8, not filesystemencoding + try: + return unicode(path) + except: + LOG.warn("Problem encountered converting string: %s." % path) + return unicode(path, sys.getfilesystemencoding(), errors='replace') + else: + try: + return unicode(path, sys.getfilesystemencoding()) + except: + LOG.warn("Problem encountered converting string: %s." % path) + return unicode(path, sys.getfilesystemencoding(), errors='replace') #------------------------------------------------------------------------- #