Некоторые из моих пользователей сообщают, что следующий код может поднять UnicodeDecodeError, если имя хоста содержит символы, отличные от ascii (однако я не смог реплицировать это на своей машине с Windows Vista) :UnicodeDecodeError при использовании socket.gethostname() result
self.path = path
self.lock_file = os.path.abspath(path) + ".lock"
self.hostname = socket.gethostname()
self.pid = os.getpid()
dirname = os.path.dirname(self.lock_file)
self.unique_name = os.path.join(dirname, "%s.%s" % (self.hostname, self.pid))
последняя часть TRACEBACK является:
File "taskcoachlib\thirdparty\lockfile\lockfile.pyo", line 537, in FileLock
File "taskcoachlib\thirdparty\lockfile\lockfile.pyo", line 296, in __init__
File "taskcoachlib\thirdparty\lockfile\lockfile.pyo", line 175, in __init__
File "ntpath.pyo", line 102, in join
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcf in position 7: ordinal not in range(128)
Любые идеи о том, почему и как это предотвратить?
(Исключение происходит с Python 2.5 на Windows XP)
Так как же я могу это сделать? –
Вы декодируете закодированную строку с "thestring" .decode ('encoding').Какая из строк является строкой и которая является юникодом, вам придется отлаживать, чтобы понять, то же самое с тем, какую кодировку использовать, я не знаю, что вам нужно проверять. –