2016-04-08 20 views
1

Ich möchte persische Sprache als meine Zeichenfolge zu drucken verwenden, es ist in Ordnung, wenn Sie das Programm schreiben, aber es ändert sich, wenn Sie es ausführen.
Was kann ich tun, um es richtig einzustellen?Verwenden Sie andere Sprachen als Englisch für Java-Strings (Persisch als Beispiel)

Der Beispielcode:

public static void main(String[] args) 
    { 
     System.out.print("سلام"); 
    } 

Das Ergebnis in Windows-Eingabeaufforderung ist nur Fragezeichen (????????) und in Notepad ++ ist es wie L╪│┘ä╪º┘ à

Persisch ist eine Nahostsprache wie Arabisch.

+0

Wie lautet die Standardcodierung des von Ihnen verwendeten Editors? –

+0

Abhängig von der Codierung Ihrer Quelldatei (die UTF-8 sein sollte) ist Ihr Code in Ordnung. Die Windows-Eingabeaufforderung wird UTF-8 nicht anzeigen, es sei denn, Sie konfigurieren es dazu: https://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how – hinneLinks

+0

Ich benutze Notepad ++ Ich bin mir nicht sicher, wie ich die Standardcodierung herausfinden soll. – farshad

Antwort

1

Sie benötigen UTF-8-Codierung, um Persisch zu unterstützen (die eine leichte Variante der arabischen Schrift verwendet). In Java können UTF-8-Daten als Byte-Array dargestellt werden. So eine Art und Weise zu erreichen, was Sie wollen, ist ein String von einem Byte-Array erstellen, um die UTF-8-Darstellung von سلام entsprechen:

try { 
    String str = new String("سلام".getBytes(), "UTF-8"); 
    System.out.println(str); 
} 
catch (Exception e) { 
    System.out.println("Something went wrong."); 
} 

Wenn Sie noch nie von einem Byte-Array erstellt gesehen haben, bevor ein String wurde, dann schau dir die Javadoc an.

Caviat: Diese Antwort wird nur funktionieren, wenn Ihr Editor auch UTF-8-Codierung. Dies ist erforderlich, damit die Kodierung korrekt ist, wenn der persische Salam-String in ein Byte-Array konvertiert wird.

+0

Ich habe diesen Fehler bei der Verwendung der Codierung erhalten: nicht gemeldete Ausnahme UnsupportedEncodingException; muss gefangen oder für geworfen erklärt werden. Wenn ich eine Ausnahme verwendet habe, wurde es wieder falsch gedruckt. – farshad

+0

Wickeln Sie die Erstellung der 'String' in einen' try-catch' Block. –

+0

Wie erstellen Sie Ihren Code? –