В настоящее время мой каталог пользователя находится в "C: \ Users \ João", и я использую 64-битную сборку Python 2.7 под Windows 7.
Обычно интерпретатор Python запускаетсяс 'ascii' в качестве кодировки по умолчанию.Однако по какой-то причине, когда Eclipse запускает его, кодировка по умолчанию - utf-8.Теперь в обычной консоли Python происходит следующее:
>>> sys.getdefaultencoding()
'ascii'
>>> os.path.expanduser('~/filename')
'C:\\Users\\Jo\xe3o/filename'
>>> x = open(_, 'w')
>>> x.close()
>>>
Я отмечу, что '\ xe3' - это код для ã как в Latin-1, так и в Windows-1252, и что всеидет нормально.Однако в Eclipse,
>>> sys.getdefaultencoding()
'utf-8'
>>> os.path.expanduser('~/filename')
'C:\\Users\\Jo\xc6o/filename'
>>> x = open(_, 'w')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 13] Permission denied: 'C:\\Users\\Jo\xc6o/filename'
, что сбивает с толку, поскольку '\ xc6' - это код символа для 'Æ', и, кроме того, недопустимый UTF-8.
Если вас интересует «Отказано в доступе», вместо «Нет такого файла или каталога», пара программ также записала материал в «C: \ Users \ JoÆo», и я также понятия не имею, почему.
Так в чем причина и решение для этого?Это даже программно или вы думаете, что некоторые системные настройки могут быть неправильными?
TL;DR: Домашний каталог правильно отображается как «C: \ Users \ João» в стандартном интерпретаторе Python и как «C: \ Users \ JoÆo», когда интерпретатор работает в Eclipse.Почему?