+ Ответить в теме
Показано с 1 по 5 из 5

Тема: Python и параметр sys.setdefaultencoding

  1. #1
    Известно, что функции Python'а обрабатывают только ASCII символы.
    Включив setdefaultencoding теоретически возможно решить глобально проблему с отработкой функции upper(). Это позволит отказаться от самодельных шрифтов (кроме ресурса иконокҚ, устранит проблему Ё Ч Я изменением одного параметра.
    В мануалах, например, "Deep Into Python" утверждается, что для установки кодировки по умолчанию надо ее объявить в site.py:
    sys.setdefaultencoding ('iso-8859-15&#39 # эта кодировка только для примера

    или же в sitecustomize.py:
    import sys
    sys.setdefaultencoding('iso-8859-15&#39

    там же, род хака:
    reload(sys)
    sys.setdefaultencoding('iso-8859-15&#39

    Проблема в том, что
    а) site.py откомпилирован в бинарник site.pyc
    б) неизвестно, где в папках Civ4 должен располагаться sitecustomize.py
    Опять же, по манулам это должно быть в Python\lib\site-packages6 Python\lib\site-python или еще где по пути объявленном в переменной окружении PYTHONPATH
    Любыми манипуляциями и жонглированием с этими параметрами не могу включить нужную кодировку.
    Есть ли здесь спецы по этому змею Питону?


    продвинь это сообщение в соцсеть:  
    / Piv 3 GHz HT / 1GB / Radeon 9550 128 MB / SoundMax 5.1 / WinXP SP2 / DirectX 9c / Catalist (ASUS)1.2.2114.467 / .Net 2.0 / 1.52 /

  2. #2
    <div class='quotetop'>Цитата</div>
    Проблема в том, что
    а) site.py откомпилирован в бинарник site.pyc
    б) неизвестно, где в папках Civ4 должен располагаться sitecustomize.py[/b]
    Один из способов решить эту проблему - установить оболочку Python - но она весит около 10 Мб, у меня после установки цива начала читать .рус-файлы из неё
    продвинь это сообщение в соцсеть:  

  3. #3
    У меня уже установлен Python 2.2, поднять версию до 2.4.1150.1012 (версия dll) пока не могу, нужен для FontLab&#39;а. Если у вас такая версия, не могли бы вы откомпилировать site.pyc c sys.setdefaultencoding(&#39;cp1251&#39 # с разными аргументами: в т.ч. iso88859-15

    В моей версии site.py имеется такая конструкция:
    # Set the string encoding used by the Unicode implementation. The
    # default is &#39;ascii&#39;, but if you&#39;re willing to experiment, you can
    # change this.

    encoding = "ascii" # Default value set by _PyUnicode_Init()

    if 0:
    # Enable to support locale aware default string encodings.
    import locale
    loc = locale.getdefaultlocale()
    if loc[1]:
    encoding = loc[1]

    if 0:
    # Enable to switch off string to Unicode coercion and implicit
    # Unicode to string conversion.
    encoding = "undefined"

    if encoding != "ascii":
    # On Non-Unicode builds this will raise an AttributeError...
    sys.setdefaultencoding(encoding) # Needs Python Unicode build !

    здесь надо заменить encoding = "ascii" на encoding = "cp1251" или encoding = "iso88859-15"
    продвинь это сообщение в соцсеть:  
    / Piv 3 GHz HT / 1GB / Radeon 9550 128 MB / SoundMax 5.1 / WinXP SP2 / DirectX 9c / Catalist (ASUS)1.2.2114.467 / .Net 2.0 / 1.52 /

  4. #4
    не разу не пробовал компилировать попробую - надеюсь чего нить получится
    продвинь это сообщение в соцсеть:  

  5. #5


    Облом.
    site.py на Civ4 не влияет никак - его удаления игра не замечает.
    Сколько еще змеев скрывается?
    Python 2.4
    Boost.Python
    wxPython 2.6.0
    продвинь это сообщение в соцсеть:  
    / Piv 3 GHz HT / 1GB / Radeon 9550 128 MB / SoundMax 5.1 / WinXP SP2 / DirectX 9c / Catalist (ASUS)1.2.2114.467 / .Net 2.0 / 1.52 /

+ Ответить в теме

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
Рейтинг@Mail.ru

free counters