Sto utilizzando Java Scanner
.Perché questo carattere 口 causa il fallimento del mio scanner?
Ho un file .txt
con questo testo salvato in esso.
PriceDB = {
["profileKeys"] = {
["Name - 回音山"] = "Name - 回音山",
},
["char"] = {
["Name - 回音山"] = {
["CurrentValue"] = "一口价:|cffffffff70,197|TInterface\\MoneyFrame\\UI-GoldIcon:0:0:2:0|t|r",
},
},
}
Tutto quello che sto cercando di fare è aprire questo file con uno scanner ed estrarre il "CurrentValue"
del 70,197
dal file e salvarlo come un int. Tuttavia, ogni volta che il file viene aperto non leggerà una riga e getterà un NoSuchElementException
con "No line found"
come messaggio. Dopo aver trafficato con il file e rimosso alcuni dei caratteri cinesi uno per uno, l'ho ristretto a questo piccoletto 口. Per qualche ragione, allo scanner non piace quel personaggio. Mi stavo chiedendo se c'è qualche impostazione di codifica che devo cambiare o se userò BufferedReader o cosa ... Non sono sinceramente sicuro di cosa stia succedendo eccetto che c'è un errore di codifica. Quindi cosa sta succedendo qui?
Modifica: ecco l'inizializzazione del mio scanner.
Scanner scanner;
if (region.equals("US")) {
scanner = new Scanner(new File("C:\\Program Files\\World of Warcraft\\WTF\\Account\\313023286#1\\SavedVariables\\WoWTokenPrice.lua"));
} else if (region.equals("EU")) {
scanner = new Scanner(new File("C:\\Program Files\\World of Warcraft\\WTF\\Account\\313495228#1\\SavedVariables\\WoWTokenPrice.lua"));
} else if (region.equals("China")) {
File file = new File("C:\\Program Files\\World of Warcraft\\WTF\\Account\\232241227#1\\SavedVariables\\WoWTokenPrice.lua");
System.out.println(file.exists());
scanner = new Scanner(file);
} else {
System.exit(1);
break;
}
Ho appena copiato come è. region == "China"
Vai un esempio dello scanner? Mi interessa se la codifica dei caratteri è impostata in modo appropriato. –
Stai impostando la codifica corretta? Che cos'è la codifica? E qual è il punto di codice Unicode per il "personaggio problematico"? – Thilo