前提・実現したいこと
ファイルの読み込み成功(コンパイル成功)して、「java Task02」と入力したところ、以下のような文字化けが発生しました。
文字コードはコンパイルの時に指定しているのに、なぜ文字化けが起こるのでしょうか。
表示できているところとできていない理由がわからず、苦戦中です。
発生している問題・エラーメッセージ
C:\Users\snk19\Documents> C:\Users\snk19\Documents>javac -encoding utf-8 Task02.java C:\Users\snk19\Documents>java Task02.java 遉セ蜩。繧ウ繝シ繝会シ?0001豌丞錐?シ?花山花子謾ッ邨ヲ鬘搾シ?31000000 遉セ蜩。繧ウ繝シ繝会シ?0002豌丞錐?シ?中山中子謾ッ邨ヲ鬘搾シ?900000 遉セ蜩。繧ウ繝シ繝会シ?0003豌丞錐?シ?北山北子謾ッ邨ヲ鬘搾シ?600000 遉セ蜩。繧ウ繝シ繝会シ?0004豌丞錐?シ?東山東子謾ッ邨ヲ鬘搾シ?300000 遉セ蜩。繧ウ繝シ繝会シ?0005豌丞錐?シ?南山南子謾ッ邨ヲ鬘搾シ?300000 遉セ蜩。繧ウ繝シ繝会シ?0006豌丞錐?シ?山田太郎謾ッ邨ヲ鬘搾シ?100000 遉セ蜩。繧ウ繝シ繝会シ?0007豌丞錐?シ?西山西雄謾ッ邨ヲ鬘搾シ?100000 遉セ蜩。繧ウ繝シ繝会シ?0008豌丞錐?シ?中野信二謾ッ邨ヲ鬘搾シ?100000 遉セ蜩。繧ウ繝シ繝会シ?0009豌丞錐?シ?神山雄太謾ッ邨ヲ鬘搾シ?250000 C:\Users\snk19\Documents>
該当のソースコード
ソースコード import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; public class Task02 { public static void main(String[] args) { //File file = new File("C:/pleiades/workspace/Task02/src/emo01.txt"); //File file = new File("C:/Users/snk19/Documents/emp01.txt"); File file = new File("C:/Users/snk19/Documents/emo01.txt"); " try (Scanner scanner = new Scanner(file)) { scanner.useDelimiter(","); //hasNext関数で値があるかを判定 while (scanner.hasNextLine()) { //System.out.println("ああああ"); //String型をint型へ変換 String empCode = scanner.next(); String empName = scanner.next(); String basicPay = scanner.next(); int basic = Integer.parseInt(basicPay); String day = scanner.next(); int days = Integer.parseInt(day); String empSec = scanner.next(); int empStatus = Integer.parseInt(empSec); switch (empStatus) { case 0: int payment00 = basic + 1000000; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment00); break; case 1: int payment01 = basic + 500000; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment01); break; case 2: int payment02 = basic + 300000; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment02); break; case 3: int payment03 = basic + 100000; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment03); break; case 4: int payment04 = basic; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment04); break; case 5: int payment05 = basic * days; System.out.print("社員コード:" + empCode); System.out.print("氏名:" + empName); System.out.println("支給額:" + payment05); break; } //next関数は前から順番に値を取得 scanner.nextLine(); } } //scanner.nextLine(); catch (FileNotFoundException e) { e.printStackTrace(); } } }
試したこと
コンパイルの際に、文字コードを指定
「chcp 65001」を入力するも、エラー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/06/24 01:25
退会済みユーザー
2021/06/24 01:25
2021/06/24 01:31
退会済みユーザー
2021/06/24 01:33 編集
2021/06/24 01:37
退会済みユーザー
2021/06/24 01:43
退会済みユーザー
2021/06/24 01:49
2021/06/24 01:50
退会済みユーザー
2021/06/24 02:03 編集
2021/06/24 02:06 編集
2021/06/24 02:15 編集