|
Nokia Internet Tablet N8XX http://n8xx.com/index.html Русские имена директорий и Python http://n8xx.com/message-243.html |
| scr @ 16-11-2007 01:50:11 |
Добрый день. Код:sys.getfilesystemencoding() Данная функция возвращает различный результат, если запускать интерпретатор Питона под обычным пользователем - UTF-8 и под root, через команду sudo gainroot - ANSI_X3.4-1968. Код:os.mkdir(newdir.encode("UTF-8"))то это работает как под рутом, так и под обычным пользователем, но теряет портабельность. Вопрос - это настройки BusyBox или не лечится никак? И почему настройки шелла влияют на определение кодировки файлов? Переменные окружения под рутом смотрел - никаких намёков на ANSI_X3.4-1968 не нашёл. |
| gLobster @ 16-11-2007 02:00:11 |
По сути ответить не смогу, но одно напишу точно - русские буквы в именах директории - дурной тон программирования и чреват большими проблемами. |
| scr @ 19-11-2007 01:57:44 |
Не хочу разжигать холивары, но по сути не согласен. В эпоху повсеместного использования уникода (к файловой системе Maemo, к сожалению, не относится) - это мнение, IMHO, устаревшее. Странно, если сущности, которыми оперирует пользователь, называются по-русски, складываются в одноимённые директории, но названия этих папок должны быть не по-русски. Да, я думал о переводе в транслит, но как-то это неспортивно. Слишком по-юниксоидному. Просто надо научиться правильно их (русские буквы) готовить. |
| gLobster @ 19-11-2007 02:14:57 |
Хохма в том, что юникод в FAT - сбоку припёку. И поэтому он и становится источником ошибок. Конечно здесь шансов меньше, но всё же. Вполне чересчур умная "поправлялка FAT" легко прибьёт кириицу, особенно юникодовую. Ведь вопрос не в маемовской файловой системе, а в чисто микрософтовской FAT32 на какрточке, которая по определению для Unix чужая. |
| scr @ 19-11-2007 02:20:54 |
А-а-а, вот где собака порылась. Как-то я забыл, что на карточке у нас FAT32. Тогда понятно, почему определение кодировки работает криво. Сделал опцию которая, будучи указана в конфиге, устанавливает кодировку принудительно и на этом успокоился. |