Domanda

Ho chiesto a qui ma sono abbastanza sicuro che non sarà possibile ottenere una risposta.

  • copia - incolla questo codice python:
  • eseguirlo
  • in un guscio utf8 classica farlo funzionare correttamente e visualizza "Coordonnées", ma nel mio terminale mintty a casa visualizza ") es CoordonnM-cm-". Qualsiasi idea di come avrei potuto farlo funzionare, o dove devo cercare (mintty non ha opzioni di codifica dei caratteri)?

codice:

#!/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()

Aggiorna

Errore: I pensato l'ho trovato: è scritto ovunque per cominciare quel codice:

locale.setlocale(locale.LC_ALL, '')

così ho provato con quello e ha funzionato:

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

=> costringerlo a lingua francese

... ha funzionato, ma solo per gli accenti. Se provo a stampare caratteri linea di disegno:

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

mi dà:

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

ciò che è Sbattere la testa è che Vim display correttamente quei chars. Così sembra che si tratta ... in pitone? Dal mio Windows / Cygwin / mintty che le opere:

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

se forzare la codifica a casa nel mio Windows / Cygwin / mintty che non di lavoro:

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

questo non funziona.

Hai idea di dove ho potuto guardare? python sembra ignorare correttamente le impostazioni internazionali ... la console è configurato correttamente, ei font in grado di visualizzare la linea di disegno caratteri, perché li vedo con vim. Quindi, pensare di più a questo proposito, può essere sia un problema di pitone o di un problema di maledizioni ...

È stato utile?

Soluzione 2

E 'risolto. ecco quello che ho fatto: ho reinstallato cygwin quindi riconfezionato mio programma python al lavoro, una ri-scaricato poi minnty 0.9.5.1 ri-installato (mintty-0.9.5-cygwin17.zip) e funziona ora. Strano.

Altri suggerimenti

I tuoi locali codifica preferita e la codifica del tty non deve essere lo stesso.

Verifica a quanto sys.stdin.encoding e sys.stdout.encoding è e cercare di usare quello.

supposizioni selvatici è che la codifica predefinita per mintty è UTF8, ma i tuoi locali codifica preferito è (dal momento che è finestre) CP1252.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top