python - Kan ikke vise cyrilliske symboler i forbandelser

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har besluttet at gå med cp866 for at undgå unicode 65001 mareridt (fejl, patches osv.) Venligst, så hver output streng i mit program er kodet ind i cp866


# coding=utf-8
print 'Кабздец'.decode('utf-8').encode('cp866')


Denne linje output korrekt streng i Windows-konsollen, selvfølgelig hvis jeg indstiller chcp 866, før jeg kører mit script.


Jeg kan dog ikke gøre forbandelser til visning i samme kodning.


stdscr.addstr("Кабздец".decode('utf-8').encode('cp866')) 


Dette vil udsende affald. Curses doc siger, at jeg er nødt til at indstille landestandard. Så jeg forsøgte at bruge


locale.setlocale(locale.LC\_ALL, '')


Dette har lidt forandring og stadig skrald, jeg tror, ​​fordi min lokalitet er CP1251. locale.getpreferredencoding() returnerer cp1251.


Spørgsmål er, hvordan man laver forbandelser for at kode strenge korrekt.


Jeg har også prøvet


locale.setlocale(locale.LC\_ALL, 'rus')


som bare vil gøre forskellige symboler, ikke korrekte dem.

Bedste reference


Har du prøvet at spille rundt med attributten altcharacterset på addstr-opkaldet endnu?