2016-04-08 28 views
1

私は文字列としてペルシア語を使用したいが、プログラムを書くときは問題ないが、実行時に変更する。
正しく設定するにはどうすればよいですか?Java文字列の代わりに英語以外の言語を使用する(例としてペルシア語)

サンプルコード:

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

結果ウィンドウには、コマンドプロンプトのみ疑問符である(????????) とメモ帳で++それはL╪│┘ä╪º┘のようなものですÅ

ペルシャ語はアラビア語のような中東語です。

+0

使用しているエディタのデフォルトのエンコーディングは何ですか? –

+0

ソーシャルファイル(UTF-8である必要があります)のエンコーディングを嫌うコードは問題ありません。あなたがそうするように構成しない限り、ウィンドウコマンドプロンプトはUTF-8を表示しません:https://stackoverflow.com/questions/388490/unicode-characters-in-windows-command-line-how – hinneLinks

+0

私はnotepad ++を使用しています、私はそれのデフォルトのエンコーディングを見つける必要がありますか分からない。 – farshad

答えて

1

ペルシア語(アラビア語のスクリプトのわずかな変形を使用)をサポートするには、UTF-8エンコーディングが必要です。 Javaでは、UTF-8データはバイト配列として表現できます。だから、あなたが欲しいものを達成するための一つの方法は、سلامのUTF-8表現に対応するバイト配列からStringを作成することです:あなたはStringが前にバイト配列から作成されて見たことがない場合は

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

Javadocをご覧ください。

Caviat:あなたエディタもUTF-8エンコーディングを使用している場合は、この答えはのみ機能します。これは、ペルシャ語のサラム文字列をバイト配列に変換するときに、エンコードが正しいようにするために必要です。

+0

エンコーディングを使用しているときにこのエラーが発生しました:未報告の例外UnsupportedEncodingException;捕まえられなければならない、または投げ出されると宣言しなければならない。例外をスローしたときに再び間違って印刷されました。 – farshad

+0

'try-catch'ブロックに' String'の作成をラップします。 –

+0

コードをどのように構築していますか? –

関連する問題