cloud9
環境で.pyファイルを新規作成+python2.x前提での回答です。
文字化けというより、('入金額',bet)
がタプル(Tuple)
として出力されており、UTF-8でのASCII範囲外の文字がバイト列のまま表示されているだけだと思います。
単体だと正常に出力されると思います。
また、文字化けせずに、文字列を連結して出力するには、書式指定して出力すればよいです。
参考:[python]文字列置換(フォーマット)まとめ(format関数, %dなど)
なお、cloud9
ターミナル上file
コマンドで.pyソースファイルの文字コードが確認できます。
Python
1# coding: UTF-8
2import sys
3# 標準入出力のエンコードを確認
4print('stdout:' + sys.stdout.encoding)
5print('stdin :' + sys.stdin.encoding)
6
7s1 = 'Taro'
8s2 = '次郎'
9t = (s1,s2) # タプル
10
11print(s1) # taro
12print(s2) # 次郎
13print(s1, s2) # タプルとして出力される ('Taro', '\xe6\xac\xa1\xe9\x83\x8e')
14print t # 同じく
15print(t) # 同じく
16
17print('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は「次郎」