Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 20, 2010 18:17:06

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Здравствуйте.
В одном месте русский текст считанный из ини-файла выводится нормально, а в другом игра крашится.
В чём различие никак не пойму.

        slot = ui.interact()

ui.at(downright)
ui.frame(style='workshop_button')
if eva.__dict__[slot]:
ui.text("{=txt}Экипировано:\n%s"%eva.__dict__[slot].id) <--- тут слетает если писать name (кириллица), а не id(латиница)
else:
ui.text("{=txt}Экипировано:\nНичего")

ui.at(upright)
ui.vbox()
for key in weapon:
wp = weapon[key]
#if wp.slot is slot:
ui.textbutton("{=txt}%s"%wp.name,ui.returns(wp.id),style='workshop_button') <--- тут тот же самый name выводится нормально.
ui.textbutton("{=txt}Ничего",ui.returns(None),style='workshop_button')
ui.close()
result = ui.interact()
#if weapon.has_key(result):
eva.__dict__[slot] = weapon[result].copy()
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 1: ordinal not in range(128)



Офлайн

#2 Июнь 21, 2010 15:11:18

Dimitor
От:
Зарегистрирован: 2007-10-30
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Попробуй оформить строки как юникодные

            ui.text(u"{=txt}Экипировано:\n%s"%eva.__dict__[slot].id) # <---  u"........



Офлайн

#3 Июнь 22, 2010 20:48:05

sypper-pit
От: Ulan-Ude(msk)
Зарегистрирован: 2009-01-30
Сообщения: 1102
Репутация: +  6  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Dimitor
верно самый простой способ :)

Eliont
Ты из БД данные берёшь ? Проверь свой питон , больше информации можно :) …

Офлайн

#4 Июнь 23, 2010 04:10:13

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Спасибо за совет, но не помогло.

Попробовал кодировать ини-файл в utf, дак он даже не грузится - парсер инишников матерится что не может найти заголовок секции. В ansi читает нормально.

MissingSectionHeaderError: File contains no section headers.
file: db/weapon_2.ini, line: 1
'\xef\xbb\xbf[knife_1]\n'



Офлайн

#5 Июнь 23, 2010 10:13:27

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

можешь выложить исходник который мы сможем у себя запустить?
а то сейчас не понятно то ли в коде косяк, то ли модуль ui кривой.

Офлайн

#6 Июнь 25, 2010 04:05:18

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Всю игру что ли?
Хотя в принципе можно, несколько доделаю и выложу.

ui кривой очень врядли, его писал не я, он принадлежит движку RenPy.



Отредактировано (Июнь 25, 2010 04:06:59)

Офлайн

#7 Июнь 25, 2010 12:58:38

Eliont
От:
Зарегистрирован: 2010-05-30
Сообщения: 77
Репутация: +  0  -
Профиль   Отправить e-mail  

Странная проблема с кодировкой и кирилиическими символами

Вроде разобрался.
Считанная кириллическая строка хранится по всей видимости в виде юникод-строки с шестнадцатеричным представлением, и при её выводе не напрямую а через ссылку-посредник (я думал метод копирует весь обьект, а оказалось только ссылку) какой-то символ из строки наверно терялся или преобразовывался, вот и получалось что ordinal not in range(128).



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version