Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:java:java_ekezetek_konzolon

< Java

Java ékezetek konzolon

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