Supporto unicode multipiattaforma per lo strumento da riga di comando Python

1

Sto lavorando su un grande strumento a linea di comando, scritto per Python 2.6+ e supportato per Windows, OS X e Linux. Gli utenti target sono sviluppatori ma vengono anche richiamati automaticamente dai sistemi CI, ecc. Nell'ambiente Windows, il nostro strumento gira in cmd.exe, ma negli altri SO consentiamo qualsiasi terminale gli utenti abbiano.

Mi piacerebbe molto aggiungere un supporto unicode generale a questo strumento, in particolare per stampare caratteri non ASCII sul terminale. Python è in generale piuttosto carino con unicode, ma cmd.exe non gioca bene con i miei piccoli test a causa di qualche problema con la codifica. Probabilmente posso "farlo funzionare" su Windows in qualche modo, ma altri problemi di codifica possono verificarsi in altri terminali? I "terminali più moderni" usano utf-8 su GNU / Linux e OS X (o dipendono dalle impostazioni locali?). Inoltre, se si verifica una mancata corrispondenza della codifica, "la maggior parte dei terminali" emette solo caratteri confusi, o arresteranno effettivamente? È in generale possibile determinare in modo affidabile la codifica utilizzata dal terminale?

Cerca principalmente persone che hanno tentato di implementare strumenti da riga di comando multipiattaforma con supporto Unicode. Il mio obiettivo con questa domanda è determinare se posso implementare il supporto Unicode con uno sforzo minimo o moderato che funziona per la stragrande maggioranza dei nostri utenti.

    
posta Betamos 14.04.2016 - 04:54
fonte

1 risposta

1

Stiamo utilizzando il codice da link ogni volta che incontriamo problemi su cmd.exe e windows. Linux sembra essere utf-8, e l'unico problema che abbiamo visto è che le impostazioni di stucco degli utenti di Windows sono state disattivate. Non so su OS X.

È possibile implementare il supporto Unicode con uno sforzo minimo o moderato? Sì e no. Il collegamento al codice sopra riportato è uno sforzo minimo e funzionerà per la maggior parte degli utenti, ma gli utenti possono modificare la codifica del terminale e altri strumenti non sono sempre Unicode Safe ...

    
risposta data 14.04.2016 - 09:31
fonte

Leggi altre domande sui tag