前提・実現したいこと
vscodeを使ってJavaの練習をしているのですが、scannerを使用して日本語の入力を受け取ろうとすると文字化けしてしまいます。
発生している問題・エラーメッセージ
教科 : 国語 教科タタです
該当のソースコード
/** * Practice */ import java.util.Scanner; public class Practice { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("教科 : "); String subject = scanner.next(); System.out.println("教科は" + subject + "です"); scanner.close(); } }
試したこと
他にもscannerの文字化けに対して質問されている方がおられたので、それを参考にlaunch.jsonに"encoding": "shift_jis"を加えてみたのですがうまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
今はエンコードはUTF-8を使用しています。
vscode は使っていないので分からないのですが・・・。
参考にされたというのは [VScodeのデバッグ結果の日本語文字化け改善方法について](https://teratail.com/questions/180547 )でしょうか。
どのように実行され(コマンドプロンプト? External Terminal?)、それらの文字コード設定はどのようにされているのでしょうか。
[VSCodeのターミナルからコンパイル/実行](https://qiita.com/sfdslkl/items/1faea86dc707ff645e43 ) といった記事の設定とは同じなのでしょうか。
ご質問ありがとうございます。
参考にしたというのは添付していただいたそちらの記事を含む複数です。
External Terminalで実行しているのですが、こちらも文字コード設定はUTF-8で統一しています。
よろしくお願いします。
TeraPadなりメモ帳なりのテキストエディタ(VSCode以外)で開いてみて、本当にUTF8になっているか試してみてください。
いまメモ帳で開いて確認してみましたが、UTF-8で間違いありませんでした。
下記を参考に、一度integratedTerminalで実行し、launcher.batをVSCodeで開いてchcpを932に変更。
https://teratail.com/questions/264384#reply-383176
launcher.batで、"encoding": "SJIS"、"console": "externalTerminal"を指定したlaunchで実行してみてください
ちなみに外部ターミナルはWindowsTerminalのPowershellでしょうか?それともコマンドプロンプトでしょうか?
あなたの回答
tips
プレビュー