私はhereに質問しましたが、私は答えが得られないと確信しています。mintty terminal、python、curses、utf8:間違った表示
- コピー - このPythonコードを貼り付けます)
- 適切にそれがうまく古典UTF8シェルで
- それを実行し、ディスプレイ「Coordonnéesを」が、自宅でmintty端末において、それは「CoordonnM-CM-を表示するES "どのように私はそれを動作させることができますか、または私は見て(mintty文字エンコーディングオプションがない)任意のアイデア?
コード:
#!/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()
更新
エラー: そのコードを開始するためにどこにでも書かれています:私ははがそれを見つけたと思った
locale.setlocale(locale.LC_ALL, '')
ので、私はしてみましたそれは働いた:
フランス語から3210
locale.setlocale(locale.LC_ALL, 'fr_FR')
は=>力を... は、それが唯一のアクセントのために働きました。 私は文字を描画、印刷ラインにしよう:
stdscr.addstr(20,20, "─ │ ┌ ┘ ┐ └ ├ ┤ ┬ ┴ ┼ ═ ║ ╔ ╝ ╗ ╚ ╠ ╣ ╦ ╩ ╬")
は私を与える:
[email protected] M-b~T~B M-b~T~L M-b~T~X M-...
ヘッドバンギングは何であるのvimが適切これらの文字が表示されることです。だから、それは... pythonから来ているようだ?私のWindows/cygwinの/ minttyから 動作する:
env | grep -i lang
LANG=C.UTF-8
私は自分のWindows/cygwinの/ mintty が仕事がないということで、自宅でエンコーディングを強制場合:
locale.setlocale(locale.LC_ALL, 'C.UTF-8')
これにはありません作業。
私はどこから見えるでしょうか? pythonはロケールの設定を適切にオーバーライドしているようです...コンソールは正しく設定されており、vimで表示されるため、フォントはライン描画の文字を表示できます。それについてもっと考えてみると、Pythonの問題かcursesの問題のいずれかになる可能性があります。
くそー! Pythonコードが正しく表示されません。ここに表示する方法がわかっている場合は、コードが表示されているリンクに移動してここに貼り付けるようにお願いします(そして、ここでは動作させる方法を教えてください=)ありがとうございます) –
Windows PythonまたはCygwin Python? – ak2
Cygwin => cintとmintty => Pythonスクリプトを起動します。 –