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

回答編集履歴

3

PHPでの環境変数の設定方法、コードを追加

2020/04/26 17:09

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -14,6 +14,10 @@
14
14
 
15
15
  方法1: PHP側で環境変数 PYTHONIOENCODING に "utf-8" を設定。
16
16
 
17
+ ```php
18
+ putenv("PYTHONIOENCODING=utf-8");
19
+ ```
20
+
17
21
  方法2: Pythonスクリプト内で対応。
18
22
 
19
23
  これは、PYTHONIOENCODINGを設定するのと同等の効果なので、どちらか片方のみで構いません。

2

PHP側での設定方法について補足

2020/04/26 17:09

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -10,8 +10,14 @@
10
10
  - [Pythonマニュアルより コマンドラインと環境](https://docs.python.org/ja/3.8/using/cmdline.html)
11
11
 
12
12
  ----
13
- 追記: Pythonでの対応方法
13
+ 追記: PHP/Pythonでの対応方法
14
14
 
15
+ 方法1: PHP側で環境変数 PYTHONIOENCODING に "utf-8" を設定。
16
+
17
+ 方法2: Pythonスクリプト内で対応。
18
+
19
+ これは、PYTHONIOENCODINGを設定するのと同等の効果なので、どちらか片方のみで構いません。
20
+
15
21
  標準出力が規定のエンコーディングに変換されるので、
16
22
  環境によってはこれを合わせる必要があります。
17
23
 

1

pythonスクリプト側での対応方法

2020/04/26 17:03

投稿

teamikl
teamikl

スコア8817

answer CHANGED
@@ -7,4 +7,28 @@
7
7
 
8
8
  また、Python用に設定が必要かもしれない環境変数としては、
9
9
  `PYTHONIOENCODING` がPythonでの標準出力のエンコーディングを決定します。
10
- - [Pythonマニュアルより コマンドラインと環境](https://docs.python.org/ja/3.8/using/cmdline.html)
10
+ - [Pythonマニュアルより コマンドラインと環境](https://docs.python.org/ja/3.8/using/cmdline.html)
11
+
12
+ ----
13
+ 追記: Pythonでの対応方法
14
+
15
+ 標準出力が規定のエンコーディングに変換されるので、
16
+ 環境によってはこれを合わせる必要があります。
17
+
18
+ (但し、追加で提示されたエラーとの関連はわからないので、
19
+ まずは日本語が正しく表示できるかどうかを確かめてください)
20
+
21
+ ```python
22
+ import io
23
+ import sys
24
+ sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
25
+ ```
26
+
27
+ python3.7 以降での対応方法
28
+ ```
29
+ import sys
30
+ sys.stdout.reconfigure(encoding='utf-8')
31
+ ```
32
+
33
+ お使いのPythonのバージョンに合わせて、どちらかスクリプトの先頭の方に記述します。
34
+ (バージョン依存を避けたい場合は上の方)