Найти - Пользователи
Полная версия: Unicode -> cp1251, есть ли какой-то способ?
Начало » Python для новичков » Unicode -> cp1251, есть ли какой-то способ?
1
Rel
Добрый день,

Столкнулся с проблемой, очевидного решения которой не вижу.

Есть GUI на Qt, которое отдаёт скрипту на питоне две строки в UTF-8. Сам скрипт тоже написан в той же кодировке.

Проблема следующая: одна из строк - имя директории. Её наличие проверяется с помощью os.path.exists(dir). В случае с английскими именами всё в порядке, но стоит встретиться русским и питон тут же выдаёт false, даже если директория существует.

Почему так происходит - понятно.

Существует ли какой-нибудь способ реализовать эту проверку, не меняя кодировку получаемых строк и файла питона на cp1251?

Система - WinXP.

Спасибо.
igor.kaist
Поменять кодировку строки, самое простое. Чем это не удобно в твоем случае?
Rel
igor.kaist
Поменять кодировку строки, самое простое. Чем это не удобно в твоем случае?
Тем, что питон не умеет приводить юникодные строки с русскими символами к cp1251
Viper
Rel
Тем, что питон не умеет приводить юникодные строки с русскими символами к cp1251
ґґґ … смешно … может у тебя строка просто не юникод?

BTW utf-8 != unicode
Ferroman
Тем, что питон не умеет приводить юникодные строки с русскими символами к cp1251
С чего вы это взяли? Да ещё так безапелляционно заявляете.
# -*- coding: UTF-8 -*-

testline = "строка с русскими символами и english letters"
print testline.decode('utf-8')
testline.decode('utf-8').encode('cp1251')
print testline
Ferroman
Проверить просто - проверяйте на наличие UnicodeEncodeError исключения при попытке teststring.decode('utf-8')
Rel
Ferroman
Тем, что питон не умеет приводить юникодные строки с русскими символами к cp1251
С чего вы это взяли? Да ещё так безапелляционно заявляете.
# -*- coding: UTF-8 -*-

testline = "строка с русскими символами и english letters"
print testline.decode('utf-8')
testline.decode('utf-8').encode('cp1251')
print testline
Действительно. Благодарю. А я всё на ошибки ascii-кодека натыкался при попытке прямой конвертации.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB