![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
подскажите пожалуства как решить проблемму:
есть файл, в виндовой кодировке CP1251, я работаю за линуксом
ну и соотвественно он мне там где встречаються русские буквы выводит какозябру. манипуляции с encode и decode не дали результата. Как мне перевести файл в UTF-8 ? А лучьше, чтобы считанную строку сразу приводить (перекодировать) из CP1251 в UTF-8 что бы с ней работать, и записать потом в файл. В гугле находил разрозненные отрывки кода которые там и несмог применить. Заранее спасибо. |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Можно так:
encode() можно, в принципе, дописать после decode(). |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
ну вот как раз таким образом я и пробывал, но пишет в файл
тПНКНБЮЙ а если проста то там другая кракозябра, может я чего недогоняю ? Это сообщение отредактировал(а) cupper - 3.8.2009, 22:18 |
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
||||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
отличнае идея
вот только опенофис открывает его как CP1251 и все ништяк. Возможно при открытие файла нужно указывать что он CP1251, но как ? Это сообщение отредактировал(а) cupper - 3.8.2009, 23:14 |
|||
|
||||
| _Viper_ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 8.11.2006 Репутация: 10 Всего: 11 |
Код правильный 100%, а крякозябрики очень похожи на неправильно открытый utf-8, может ты его как CP1251 открываешь ;) Это сообщение отредактировал(а) _Viper_ - 4.8.2009, 13:44 |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
может быть, домой приду перепроверю
|
|||
|
||||
| powerfox |
|
|||
![]() I wanna fork() ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3990 Регистрация: 1.10.2005 Где: Санкт-Петербург Репутация: 1 Всего: 97 |
Такого API у open нет, на сколько я помню. Да и не нужно: всё, что должно делать такое низкоуровневое чтение, так это читать байты, а уже ваше дело их интерпретировать. Погуглив немного, нашёл такой совет: http://coding.derkeiler.com/Archive/Python...2/msg00689.html |
|||
|
||||
| nerezus |
|
|||
![]() Вселенский отказник ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3330 Регистрация: 15.6.2005 Репутация: 1 Всего: 43 |
А чем не устраивает обычный вариант?
print unicode(open('c:\\t.txt').read(), 'cp1251').encode('utf-8') |
|||
|
||||
| cupper |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 525 Регистрация: 29.11.2006 Репутация: нет Всего: 1 |
короче у меня какойто гемор не в коде, а в тоам где и как я храню данные, нечего неполучаеться из выше описанного. Плюнул на все, открыл опен офисом в CP1251 и от тудова все перекопировал в файл, теперь все работает
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Python: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |