質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.53%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

4回答

1116閲覧

VScodeの出力が文字化けします

ozenzai

総合スコア1

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/09/18 23:29

実現したいこと

VScodeで出力される文字化けを直したい

前提

Pythonでtestファイルを作成し、testファイルのエンコードがなにかを調べようとしたところ出力結果の日本語部分が文字化けしてしまいました。
testファイルを実行した際にも出力結果の日本語部分が文字化けします。
ターミナルは日本語が正しく表示され、文字化け等はありません。

発生している問題・エラーメッセージ

test.py �̃G���R�[�f�B���O�� utf-8 �ł��B

該当のソースコード

Python

1import chardet 2 3# ファイル名 4file_name = 'test.py' 5 6# ファイルのエンコーディングを確認 7def get_file_encoding(file_name): 8 with open(file_name, 'rb') as file: 9 result = chardet.detect(file.read()) 10 return result['encoding'] 11 12encoding = get_file_encoding(file_name) 13print(f"{file_name} のエンコーディングは {encoding} です。")

試したこと

コントロールパネル→地域→システムロケールの変更→「ワールドワイド言語サポートで Unicode UTF-8 を使用」にチェックを入れて再起動

補足情報(FW/ツールのバージョンなど)

VScode 1.82.2
Python 3.11.5
conda 23.7.4

プログラミング初心者につき初歩的な質問で申し訳ありません。
必要な情報がこれで足りているかわからないですが解決方法を教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ziopuzzle

2023/09/19 02:32

質問内容からWindowsと推測しました。 WindowsのコマンドプロンプトやPowerShellは、デフォルトの文字コードがShift JISなので、それが原因となっている可能性があります。 OSや使用しているターミナルは何かを記述するとよいかもしれません。 コマンドプロンプトならchcpコマンドで使われている文字コードの確認とかもよいかも?
Demerara

2023/09/19 02:45

提示されているコードと、test.py ファイルを作成したのは、システムロケールの変更前ですか? とすれば、再度 VSCode 上で一からファイルを作成して保存した後に実行してみください。 また、VSCode の設定でファイルのエンコーディングが UTF-8 に設定されていることを確認してください。設定ページの検索窓に、files.encoding と入力すれば表示されます。
TakaiY

2023/09/19 03:31 編集

やりたいことは何ですか? 「WindowsのコマンドプロンプトでUTF-8の出力を文字化けしないように表示したい」ということ?それとも、単にプログラムが出力する日本語文字が文字化けしなければよい? また、「VScodeの出力が文字化け」ということは、VScodeのコンソールとかで表示できるようにしたいってこと? 基本的には文字コードの問題だと思いますが、目的がわからないと回答しにくいです。 「ワールドワイド言語サポートで Unicode UTF-8 を使用」というのは、システム側をいじっていることになるので。 -
ozenzai

2023/09/19 03:56

>>ziopuzzle様 回答ありがとうございます。ターミナルでchcpを検索したらShift JISのコードになっていたのでUTF-8のコードに変更してみたのですが文字化けが直らず、再起動してchcpをもう一度検索したところShift JISのコードに戻っていました 文字コードをUTF-8に固定する方法を教えていただけたりしますでしょうか 使用OSはwindows10 ターミナルはcmdとなっていますがこれであっているかわかりません >>Demerara様 回答ありがとうございます。 test.pyを作成したのはシステムロケール前でしたのでもう一度test.pyと今回の文字コード確認のファイルも新規作成しましたが出力結果は文字化けしていました。 ファイルのエンコーディングに関しては教えていただいた方法を試したところ、UTF-8でした。 >>TakaiY様 回答ありがとうございます。 やりたい事ですが、TakaiY様の回答内にある単にプログラムが出力する日本語文字が文字化けしなければいいが該当しそうです。 test.pyと文字コード確認のプログラムどちらもprintで出てくるはずの日本語文字がVSCODEの出力画面で文字化けしていて困っているといった感じです。 VSCodeのコンソールがターミナル?の事を指しているのであればターミナルは日本語は文字化けしていません。 何故か出力画面の日本語のみ文字化けしてしまいます。 返信として不足している部分が多いと思います。本当に申し訳ありません。 ただ本当に困っていて助けていただけたらと思っています。
ozenzai

2023/09/19 11:25

回答ありがとうございます hoshi-takanori様のURLの内容を参考にさせていただいて起動時からchcpを65001にしてUTF-8にすることができました!! 本当にありがとうございます ただこの状態でも出力が文字化けしてしまいます・・・ アンインストールするのも考えたほうがいいでしょうか・・・
ozenzai

2023/09/19 11:30

すいません補足させてください。 今ターミナルを使用してtest.pyのコードを確認するプログラムを実行したところターミナル上では文字化けがありませんでした。 出力でのみ文字化けします。 出力タブはターミナルで選んでいるコマンドプロンプトではなく他のpowershellなんかで絶対に出力されたりするんでしょうか?
TakaiY

2023/09/19 11:38

> ターミナルを使用してtest.pyのコードを確認するプログラムを実行した とは、どの「ターミナル」を指しますか? スタートメニューなどから、powershellを立ち上げてできたターミナルですか? > 出力でのみ文字化け とは、どこの出力のことを指しますか?
ozenzai

2023/09/19 12:01

返信ありがとうございます!! VScodeの下?にでてくる 「問題」「出力」「デバッグコンソール」「ターミナル」「ポート」のターミナルを使用しました。 ターミナルのコマンドラインはC:/windows/system32/cmd.exeを使用しています >出力でのみ文字化け 上記と同様のVScodeの下にでてくる「問題」「出力」「デバッグコンソール」「ターミナル」「ポート」の「出力」の事です。 本当に申し訳ないです。 今ターミナルでtest.pyとtest.pyの文字コードを確認するプログラムをターミナルで実行したところ、日本語部分が文字化けせずターミナルにて表示されました。 その後TakaiY様の返信文を書いている時にもう少し調べたところ本当にみなさんにお手数をおかけしてしまい申し訳なかったのですが、拡張機能でCode Runnerをいれており、それが悪さをして出力のページで文字化けをしていたようでした。 拡張機能で何をいれているとか書かずに回答いただいてしまい申し訳ありませんでした。 [リンク](https://beiyan-tool.info/?p=962) こちらの記事の情報で解決しました。
guest

回答4

0

ベストアンサー

補足情報に、conda 23.7.4 とありますが、VSCode で起動される cmd.exeは、Anaconda 環境のものではありませんか?だとすると、システムロケールの変更は効果がありません。

VSCode の設定で、コマンドプロンプト起動時の引数に、/K chcp 65001 を追加します。
設定画面から歯車のマークを押して、settings.json ファイルを開いて、以下のブロックを追加します。

settings.json

1{ 2 "terminal.integrated.profiles.windows": { 3 "Command Prompt": { 4 "args": ["/K","chcp 65001"], 5 }, 6 }, 7}

投稿2023/09/19 04:52

Demerara

総合スコア392

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozenzai

2023/09/19 05:21

回答ありがとうございます。 はいそうですAnaconda環境です。 setting.jsonのcommand Promptの{}内にすでに下記のコードが記載されておりました。 "Command Prompt": { "path": [ "${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe" ], "args": [], "icon": "terminal-cmd" argsに文字コードをいれたらいいのかと思い、 "Command Prompt": { "path": [ "${env:windir}\\Sysnative\\cmd.exe", "${env:windir}\\System32\\cmd.exe" ], "args": ["/K","chcp 65001"], "icon": "terminal-cmd" このように入力して保存し、文字コードを確認するプログラムを実行したところ質問したときと同じ文字化けしたコードが出力されました。 また、pathやiconを消して実行してみましたがやはり文字化けします
Demerara

2023/09/19 05:42

もし、VSCode で起動されるコマンドプロンプトが、Anaconda Prompt になっているのなら、設定の path は、Anaconda Prompt のパスにする必要があります。"C:\Users\(ユーザー名)\anaconda3\(~)\cmd.exe" といった風にフルパスで指定します。
Demerara

2023/09/19 06:03

すいません、Anaconda Prompt は、Activate.bat というバッチファイルが実行されていることを忘れてました。Anaconda Prompt の cmd.exe というのは存在しません。上記のコメントは忘れてください。 System32 の cmd.exe が実行されていて、引数も指定しているにも関わらず、UTF-8 に固定されないということですね。となると、私の方では原因がわかりかねます。力ずになれず申し訳ないです。
ozenzai

2023/09/19 06:21

返信ありがとうございます。 質問とはそれてしまうのですが、Anacondaをいれたのが下調べを少ししかせずに入れておいたほうがいいかなと思って必要がないのに最初にインストールしてしまいました。 Pythonを使う上でAnacondaはあまり必要なかったりするのでしょうか? またこういう状況のときは一度Anacondaをアンインストールしてしまった方がよかったりするのでしょうか?
Demerara

2023/09/20 00:13

そうですね。「Python を使ってみる」ぐらいの目的なら Anaconda は不要です。導入にはそれなりの知識も要求されますし、ある程度プログラミングになじみのある方向けのツールだと思ってます。とりわけ、機械学習やデータサイエンス等に興味のある人がよく導入しているツールです。 Anaconda を導入すると環境が複雑になり簡単な問題に対しても解決が困難になることがあります。どのようにコマンドプロンプトを起動したのかとか、仮想環境は有効化してるのか否かとか、テキストエディターは Navigator 内から起動してるのかとか、Anaconda の Python パスは通したのかとか、様々な要素が関係してきます。 あくまで私個人の見解ですが、Python の初心者には Anaconda の導入はおすすめしません。アンインストールするべきです。大抵のことは VSCode と拡張機能の Python だけで事足ります。 PS. コメント欄を読んで今回の質問の意図が理解でき、すっきりしました。「出力」とは「出力タブ」のことだったんですね。2023年現在、Python の開発では Code Runner も不要です。他の言語のプログラムで使用しているなら Python 環境では無効化することをおすすめします。
ozenzai

2023/09/20 01:33

返信ありがとうございます! めちゃくちゃ有用な情報本当にありがとうございます AnacondaとCode runnerは消して続けていきたいと思います!! あと説明も下手くそで分かりにくかったのにいっぱい教えてくださって本当に助かりました。 ありがとうございます!またわからないことがあったらよろしくお願いします!!
guest

0

Google Fontsをインストールする

投稿2023/09/18 23:55

KEMONO_PANTSU_b

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozenzai

2023/09/19 02:18

回答ありがとうございます。 Google fontsからRounded Mplus 1c Blackというフォントをダウンロードし、VSCodeの設定内にあるEditor: Font familyの箇所に以下のように入力しました。 'Rounded Mplus 1c Black', Consolas, 'Courier New', monospace もう一度作成したコードを実行したところ出力のフォント自体は変更されましたが、質問した時と同様に文字化けは直りませんでした。
guest

0

こちらを参考にしてください

投稿2023/09/18 23:38

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ozenzai

2023/09/18 23:58

回答ありがとうございます。 頂いた参考URL内のShift_JISに該当するかエンコード付きでShift_JISとして開いたところ文字化けし、UTF-8として開いたところ文字化けせずに開くことができたのでUTF-8でコードは記載できていると思います。 ただコード自体が文字化けするわけではなく、出力結果の日本語のみが文字化けしてしまいます。 最初の質問と説明が下手くそで本当に申し訳ないです・・・
guest

0

拡張機能で導入していたCode runnerが原因でコード実行後の出力タブが文字化けしていました。
https://beiyan-tool.info/?p=962
こちらのリンクを参考にしてターミナルで出力するように変更しました。

投稿2023/09/20 02:19

ozenzai

総合スコア1

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.53%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問