oktatas:programozas:java:java_ekezetek_konzolon
Tartalomjegyzék
Java ékezetek konzolon
- Szerző: Sallai András
- Copyright © 2019, Sallai András
- Szerkesztve: 2019, 2025
- Licenc: CC BY-SA 4.0
- Web: https://szit.hu
Bevezetés
Linuxon problémamentes az magyar ékezetek megjelenítése konzolon, mivel a környezet UTF-8. Magyar nyelvű Windowson azonban Cp1250 (W7 rendszeren tesztelve).
Megoldás
A javac fordítót ezért a -encoding UTF-8 kapcsolóval kell használni.
Geany
Geany-ben például:
- Összeállítás > Build parancsok megadása
A fordító parancsot javítsuk így:
javac -encoding UTF-8 "%f"
Ez raszteresen és Lucida Console fonttal is jól működik, jól jeleníti meg a \u00e1 kódokat is.
Bekérés és fájlba írás
Ha Windowson bekérünk szöveget, majd kiírjuk fájlba a magyar ékezetes szövegek hibásan jelenhetnek meg. Bekérésnél jelezzük ha a terminál karakterkódolása nem utf-8.
Windows terminál kódolása:
- Nyugat-európai: cp1252
- Közép-európai: cp1250
- App.java
import java.io.FileWriter; import java.nio.charset.Charset; import java.util.Scanner; public class App { public static void main(String[] args) throws Exception { String os = System.getProperty("os.name").toLowerCase(); String charsetName = "utf-8"; if(os.contains("win")) { charsetName = "cp1250"; } Scanner sc = new Scanner(System.in, charsetName); System.out.print("Név: "); String name = sc.nextLine(); sc.close(); // A FileWriter() ilyen konstruktora 11 Java verziótól elérhető: FileWriter fw = new FileWriter("adat.txt", Charset.forName("utf-8"), true); fw.write(name); fw.write("\n"); fw.close(); } }
A példában használt FileWriter() konstruktor a 11 Java verziótól érhető el.
Szintaxisa:
public FileWriter(File file, Charset charset, boolean append) throws IOException
oktatas/programozas/java/java_ekezetek_konzolon.txt · Utolsó módosítás: 2025/04/16 15:32 szerkesztette: admin