Używam Java Scanner
.Dlaczego ta postać powoduje uszkodzenie mojego skanera?
Mam plik .txt
z zapisanym w nim tekstem.
PriceDB = {
["profileKeys"] = {
["Name - 回音山"] = "Name - 回音山",
},
["char"] = {
["Name - 回音山"] = {
["CurrentValue"] = "一口价:|cffffffff70,197|TInterface\\MoneyFrame\\UI-GoldIcon:0:0:2:0|t|r",
},
},
}
Wszystko staram się zrobić, to otworzyć ten plik za pomocą skanera i wyodrębnić "CurrentValue"
z 70,197
z pliku i zapisać go jako int. Jednak za każdym razem, gdy plik jest otwierany, nie odczyta linii i wyśle NoSuchElementException
z komunikatem "No line found"
. Po obejrzeniu pliku i usunięciu niektórych chińskich znaków jeden po drugim zawęziłem go do tego małego faceta 口. Z jakiegoś powodu skaner nie lubi tej postaci. Zastanawiałem się tylko, czy jest jakieś ustawienie kodowania, które muszę zmienić, czy mam zamiar użyć BufferedReader, czy ... nie jestem do końca pewien, co się dzieje, chyba że jest błąd w kodowaniu. Więc co się tutaj dzieje?
Edytuj: Oto inicjalizacja mojego skanera.
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;
}
Po prostu skopiowałem to, jak jest. region == "Chiny"
Idź przykładem swojego skanera? Interesuje mnie, czy kodowanie znaków jest odpowiednio ustawione. –
Czy ustawiasz odpowiednie kodowanie? Jakie to jest kodowanie? A jaki jest kod kodowy Unicode dla "kłopotliwej postaci"? – Thilo