Frage

Ich habe gefragt hier Aber ich bin mir ziemlich sicher, dass ich keine Antwort bekommen werde.

  • Kopieren - Fügen Sie diesen Python -Code ein:
  • Führ es aus
  • In einer klassischen UTF8-Shell funktioniert es ordnungsgemäß und zeigt "Koordonnées" an, aber in meinem Mintty-Terminal zu Hause zeigt es "Koordonnm-cm-) es". Irgendeine Idee, wie ich es zum Laufen bringen könnte oder wo ich aussehen sollte (Mintty hat keine Charakter -Codierungsoptionen)?

Code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import os, sys, time, random, copy, pprint
import termios, tty, fcntl
import thread, curses
import locale

def curses_main(stdscr, code):
    curses.curs_set(0)
    stdscr.addstr(2, 0, "Coordonnées")
    stdscr.refresh()
    # (1) = délai d'attente de 1/10 ème de seconde :
    curses.halfdelay(1)
    while True:
        try:
            c=stdscr.getch()
        except:
            c=-1
        if 0<c<256:
            if chr(c) in 'Qq':
                break
def main():
    locale.setlocale(locale.LC_ALL, '')
    code = locale.getpreferredencoding()
    curses.wrapper(curses_main, code)

if __name__ == '__main__':
    main()

Aktualisieren

Fehler: i Gedanke Fand es: Es ist überall geschrieben, um mit diesem Code zu beginnen:

locale.setlocale(locale.LC_ALL, '')

Also habe ich es damit versucht und es hat funktioniert:

locale.setlocale(locale.LC_ALL, 'fr_FR')

=> Zwingen Sie es der französischen Sprache

... es hat funktioniert, aber nur für die Akzente. Wenn ich versuche, Linienzeichnungsschelungen zu drucken:

stdscr.addstr(20,20, "─ │ ┌ ┘ ┐ └ ├ ┤ ┬ ┴ ┼ ═ ║ ╔ ╝ ╗ ╚ ╠ ╣ ╦ ╩ ╬")

gibt mir:

M-b~T~@ M-b~T~B M-b~T~L M-b~T~X M-...

Was ist Kopfknall ist, dass VIM angezeigt wird richtig diese Schmale. Es scheint also, als wäre es ... von Python? Aus meinem Windows/Cygwin/Mintty funktioniert das:

env | grep -i lang
LANG=C.UTF-8

Wenn ich zu Hause in meinen Fenstern/Cygwin/mintty zu Hause erzwinge nicht Arbeit:

locale.setlocale(locale.LC_ALL, 'C.UTF-8')

Das funktioniert nicht.

Irgendeine Idee, wo ich suchen könnte? Python scheint die Einstellungen des Gebietsschemas ordnungsgemäß zu überschreiben ... Die Konsole ist ordnungsgemäß konfiguriert und die Schriftarten können Zeilenzeichnungszeichen anzeigen, da ich sie mit VIM sehe. Wenn Sie also mehr darüber nachdenken, kann es entweder ein Problem von Python oder ein Problem der Flüche sein ...

War es hilfreich?

Lösung 2

Es ist gelöst. Hier ist, was ich getan habe: Ich habe Cygwin neu installiert und mein Python-Programm bei der Arbeit neu verpackt, ein neu geladenes, dann neu installierte Minnty 0.9.5.1 (Mintty-0.9.5-Cygwin17.zip) und es funktioniert jetzt. Seltsam.

Andere Tipps

Ihre Orte bevorzugten Codierung und die Kodierung Ihres TTY muss nicht dasselbe sein.

Überprüfen Sie, was sys.stdin.encoding und sys.stdout.encoding ist, und versuchen Sie, dies zu verwenden.

Wilde Vermutungen ist, dass die Standardcodierung für Mintty UTF8 ist, aber Ihre Orte bevorzugt Codierung (da es Windows ist) CP1252.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top