質問するログイン新規登録

回答編集履歴

3

文字コードの確認方法を追記

2017/05/19 06:03

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -6,6 +6,7 @@
6
6
  また、文字化けせずに、文字列を連結して出力するには、書式指定して出力すればよいです。
7
7
  参考:[[python]文字列置換(フォーマット)まとめ(format関数, %dなど)](http://dackdive.hateblo.jp/entry/2014/11/15/001318)
8
8
 
9
+ なお、`cloud9`ターミナル上`file`コマンドで.pyソースファイルの文字コードが確認できます。
9
10
 
10
11
  ```Python
11
12
  # coding: UTF-8
@@ -31,6 +32,8 @@
31
32
  ```
32
33
  can110:~/workspace $ python -V
33
34
  Python 2.7.6
35
+ can110:~/workspace $ file test2.py
36
+ test2.py: UTF-8 Unicode text
34
37
  can110:~/workspace $ python test2.py
35
38
  stdout:UTF-8
36
39
  stdin :UTF-8

2

本文修正

2017/05/19 06:03

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  `cloud9`環境で.pyファイルを新規作成+python2.x前提での回答です。
2
2
 
3
- 文字化けというより、タプルとして出力されており、UTF-8でのASCII範囲外の文字がバイト列のまま表示されているだけだと思います。
3
+ 文字化けというより、`('入金額',bet)`が`タプル(Tuple)`として出力されており、UTF-8でのASCII範囲外の文字がバイト列のまま表示されているだけだと思います。
4
4
 
5
5
  単体だと正常に出力されると思います。
6
6
  また、文字化けせずに、文字列を連結して出力するには、書式指定して出力すればよいです。

1

コード修正

2017/05/19 02:09

投稿

8524ba23
8524ba23

スコア38350

answer CHANGED
@@ -21,6 +21,7 @@
21
21
  print(s1) # taro
22
22
  print(s2) # 次郎
23
23
  print(s1, s2) # タプルとして出力される ('Taro', '\xe6\xac\xa1\xe9\x83\x8e')
24
+ print t # 同じく
24
25
  print(t) # 同じく
25
26
 
26
27
  print('s1は「%s」,s2は「%s」' % (s1,s2)) # s1は「Taro」,s2は「次郎」
@@ -37,5 +38,6 @@
37
38
  次郎
38
39
  ('Taro', '\xe6\xac\xa1\xe9\x83\x8e')
39
40
  ('Taro', '\xe6\xac\xa1\xe9\x83\x8e')
41
+ ('Taro', '\xe6\xac\xa1\xe9\x83\x8e')
40
42
  s1は「Taro」,s2は「次郎」
41
43
  ```