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

回答編集履歴

2

3.7 での対応について追記

2020/04/22 14:47

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -16,7 +16,16 @@
16
16
  sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
17
17
  ```
18
18
 
19
+ **追記: 3.7 での対応方法**
19
20
 
21
+ 3.7 であれば直接 stdout.encoding を設定できるようになったので、
22
+ io.TextIOWrapper .. の代わりに
23
+ ```
24
+ import sys
25
+ sys.stdout.reconfigure(encoding='utf-8')
26
+ ```
27
+ でも良いようです。
28
+
20
29
  ----
21
30
  win10/64bit にて、Python標準ライブラリのCGIサーバーを起動して確認。
22
31
 

1

追記

2020/04/22 14:47

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -34,9 +34,12 @@
34
34
 
35
35
  出力を確認すると、Shift_JIS になっていたので、
36
36
  (test.py自身はutf-8なのを確認)
37
- ブラウザの自動判別で正常に表示されているが、
37
+ ブラウザの自動判別で正常に表示されている
38
- フォーム等は文字化けしたまま?
38
+ ~~フォーム等は文字化けしたまま?~~
39
39
 
40
+ 追記: meta タグや content-type で charset=utf-8 を指定すると、
41
+ 実際の文字コードとcharsetに指定されたコードに相違がある為、文字化けが発生する。
42
+
40
43
  試しに、"Content-Type: text/html; charset=utf-8" とすると
41
44
  同じく、べージ全体が文字化けしました。
42
45