Форум сайта python.su
Чем отличается функция unicode() от метода string.encode('utf-8') ?
Ответ “ничем” не принимается потому что на практике познал что таки отличается :)
Желательно сцылки на офф доку
Офлайн
pochechyevХм… Тем что они делают противоположные вещи. unicode() преобразует байтовую строку в дофолтной кодировке в уникодную, string.encode() делает из уникодной строки байтовую в указанной кодировке.
Чем отличается функция unicode() от метода string.encode('utf-8') ?
Офлайн
не совсем понял
есть s='test' допустим в cp1251
unicode(s) - конвертирует в utf-8
s.encode(utf-8) - получается делат тоже самое …
нифига не понял )
спрашиваю потому что русские имена файлов при аплоаде не хотели самостоятельно перекодироватся, тогда я воспользовался unicode() - не помогло, а вот s.encode('utf-8') сработало.
Отредактировано (Июль 29, 2009 23:08:33)
Офлайн
pochechyevНет. У вас байтовая строка s в кодировке cp1251. Конструктор (функция) unicode преобразует её, используя дефолтный кодек (обычно ASCII), в последовательность уникодных символов. Естественно сломается.
есть s='test' допустим в cp1251
unicode(s) - конвертирует в utf-8
pochechyevТут масло масленное, байтовую строку вы хотите преобразовать в такую же байтовую в указанной кодировке. Тоже сломается.
s.encode(utf-8) - получается делат тоже самое …
Офлайн
Общую суть я понял. Но детали нужно прояснять. Не подскажите где можно подробнее об этом почитать ?
Офлайн
pochechyevИспользование Unicode в Python (pdf)
Общую суть я понял. Но детали нужно прояснять. Не подскажите где можно подробнее об этом почитать ?
Офлайн
Спасиб
Офлайн
и еще один вопрос.
в Python 2.5 стандарт таки unicode?
Офлайн
У меня не пашет unicode ни decode
mystr = “моя строка”
unistr = mystr.decode('utf-8')
выдает ответ:
LookupError: no codec search functions registered: can't find encoding
подскажите, в чем проблема
Офлайн
Какой питон?
Офлайн