VS Code+Python実行したら日本語出力が文字化け

2021年3月9日Python,プログラミング,教室レポート

VS Code + Pythonプログラム実行したらターミナルの日本語出力が文字化けするぞ

先生おしえて。VS Codeで文字が化けます。

先生ー、VS Codeで文字が化けますー!
yotaくん
yotaくん
たっきー
たっきー
文字コードが違うんじゃない。VS CodeのデフォルトはUTF-8なんだけど、yota君が開いたソースはUTF-8じゃなくて、Shift JISだったのかな・・・?

VS Codeには、"UTF-8″と表示されてまーす。
yotaくん
yotaくん

たっきー
たっきー
ほんとだ、"UTF-8″と表示されてるね・・・。
たっきー
たっきー
あ”、ちゃんとソースは日本語で表示されてる!
文字化けしているのは、ターミナルの方なんだー!?

たっきー
たっきー
yota君、理由は分かりませんが、ちょっと手直ししたら文字化けが消えましたー。

先生ー、どこ変えたんですかぁー!
yotaくん
yotaくん
たっきー
たっきー
2か所変えています。
1つはターミナルの文字コードを変えました。ターミナルはPowerShellなんだけど、デフォルトはShift JISでした。このターミナルで使われる文字コードをUTF-8からShift JISに変えました。
たっきー
たっきー
コマンドプロンプトやPowerShellでは、chcpコマンドで文字コードを確認したり、番号を指定して変更できます。文字コードと番号の対応は、Shift-JIS: 932、UTF-8: 65001 となりますね。

先生ー、まだ文字化けが消えませーん。
yotaくん
yotaくん
たっきー
たっきー
もう1か所変えたところがあります。inputに指定していた文字列を引数ではなく、printで表示させるように変更したら直りましたー。
[変更前]
op=input('足し算:+,引き算:-,掛け算:*,割り算:/のいずれかを入力=')
[変更後]
print("足し算:+,引き算:-,掛け算:*,割り算:/のいずれかを入力=")
    op=input()
先生ー、文字化け直ったよー!
yotaくん
yotaくん