質問: 'Taro' print('Hello',name) ``` とすればうまく表示されます 片方が数値の時がダメみたいです 解決策を教えてください
回答: `cloud9`環境で.pyファイルを新規作成+python2.x前提での回答です。 文字化けというより、`('入金額',bet)`が`タプル(Tuple)`として出力されており、UTF-8でのASCII範囲外の文字がバイト列のまま表示されているだけだと思います。 単体だと正常に出力されると思います。 また、文字化けせずに、文字列を連結して出力するには、書式指定して出力すればよいです。 参考:[python]文字列置換(フォーマット)まとめ(format関数, %dなど) なお、`cloud9`ターミナル上`file`コマンドで.pyソースファイルの文字コードが確認できます。 ``` # coding: UTF-8 import sys # 標準入出力のエンコードを確認 print('stdout:' + sys.stdout.encoding) print('stdin :' + sys.stdin.encoding) s1 = 'Taro' s2 = '次郎' t = (s1,s2) # タプル print(s1) # taro print(s2) # 次郎 print(s1, s2) # タプルとして出力される ('Taro', '\xe6\xac\xa1\xe9\x83\x8e') print t # 同じく print(t) # 同じく print('s1は「%s」,s2は「%s」' % (s1,s2)) # s1は「Taro」,s2は「次郎」 ``` 実行結果 ``` can110:~/workspace $ python -V Python 2.7.6 can110:~/workspace $ file test2.py test2.py: UTF-8 Unicode text can110:~/workspace $ python test2.py stdout:UTF-8 stdin :UTF-8 Taro 次郎 ('Taro', '\xe6\xac\xa1\xe9\x83\x8e') ('Taro', '\xe6\xac\xa1\xe9\x83\x8e') ('Taro', '\xe6\xac\xa1\xe9\x83\x8e') s1は「Taro」,s2は「次郎」 ```