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

回答編集履歴

3

本筋と離れた内容を分離

2017/01/05 08:34

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -61,6 +61,13 @@
61
61
  ```
62
62
 
63
63
 
64
+ 以下、本筋とは離れた内容になるため、参考程度にお読みください。
65
+
66
+
67
+
68
+ シェル(ターミナル)とpythonの標準入力の文字コードが異なる場合
69
+ ---
70
+
64
71
  ちなみにWin10+Anacondaの対話環境でPYTHONIOENCODING環境変数を利用してみましたが
65
72
  コマンドプロンプト上(cp932)とpython実行環境(utf-8)の文字コード不整合のためか、下記のようにエラーになりますね。
66
73
  ```

2

内容追記

2017/01/05 08:34

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -89,6 +89,9 @@
89
89
 
90
90
  コマンドプロンプトのコードページを65001(UTF-8)にしてみると…
91
91
  ```
92
+ C:\Windows\system32>set PYTYONIOENCODING=utf-8
93
+ C:\Windows\system32>echo %PYTHONIOENCODING%
94
+ utf-8
92
95
  C:\Windows\system32>chcp
93
96
  Active code page: 65001
94
97
 

1

内容追記

2017/01/05 08:22

投稿

8524ba23
8524ba23

スコア38352

answer CHANGED
@@ -84,4 +84,32 @@
84
84
 
85
85
  ^
86
86
  SyntaxError: 'utf-8' codec can't decode byte 0x82 in position 6: invalid start byte
87
+ ```
88
+
89
+
90
+ コマンドプロンプトのコードページを65001(UTF-8)にしてみると…
91
+ ```
92
+ C:\Windows\system32>chcp
93
+ Active code page: 65001
94
+
95
+ C:\Windows\system32>python
96
+ Python 3.5.2 |Anaconda 4.2.0 (64-bit)| (default, Jul 5 2016, 11:41:13) [MSC v.1900 64 bit (AMD64)] on win32
97
+ Type "help", "copyright", "credits" or "license" for more information.
98
+ >>> import sys
99
+ >>> sys.stdin.encoding
100
+ 'utf-8'
101
+ >>> sys.stdout.encoding
102
+ 'utf-8'
103
+ >>> sys.getdefaultencoding()
104
+ 'utf-8'
105
+ >>> ai = 'ab'
106
+ >>> ai
107
+ 'ab'
108
+
109
+ # ↓ IMEが立ち上がらないのでコピーペーストで入力
110
+ >>> ai = 'あい'
111
+
112
+ # ↑ pytyon.exeが異常終了?してコマンドプロンプトに戻る…
113
+ # 何らかのエラーメッセージを出力しているのかもしれないが文字コード不整合のため表示されていない?
114
+ C:\Windows\system32>
87
115
  ```