2016-08-13 20 views
1

Java GUIアプリケーションをビルドしましたが、UnicodeテキストのあるjLabelがありました。 NetBeans IDEからアプリケーションを実行すると、テキストが正しいフォームとして表示されますが、.jarから実行すると、変形されたフォームとして表示されるテキストがファイルに書き込まれます。私のアプリケーションにUnicodeが表示されません。

マイコード:

try { 
    jLabel1.setText(new String("ژمارا ناسنامی".getBytes(), "UTF-8")); 
} catch (UnsupportedEncodingException ex) { 
    Logger.getLogger(dataEntry.class.getName()).log(Level.SEVERE, null, ex); 
} 

出力:

enter image description here

答えて

0

は、こののみを試してみてください:

jLabel1.setText("ژمارا ناسنامی"); 

確かにここにあなたのエラーは最初の電子にありますNCODEあなたデフォルトのエンコードを使用して、あなたはStringはそれがアラビア文字、既にカバーしてエンコードされ、すでにUTF-16あるようUTF-8と役に立たないことができませんでしたデフォルトのエンコーディングに依存していると間違っているUTF-8にそれを解読getBytes()String

結果を新規バイト配列に格納し、プラットフォームの デフォルトの文字セットを使用してこのStringをバイトシーケンスに符号化:リマインダーとしてここ

は方法String#getBytes()のJavadocのです。この文字列が のデフォルトの文字セットでエンコードされない場合のこのメソッドの動作は、 は指定されていません。 CharsetEncoderクラスは、エンコーディングプロセスをより詳細に制御する必要がある場合には、 にする必要があります。

あなたが適切Stringをエンコードしたい場合は、代わりにString#getBytes(Charset)またはString#getBytes(String)を使用するようにする必要があります。しかし、もう一度、この特定のケースでは必要でさえありません。

+0

ありがとうございます。 –

+0

問題ありません –

関連する問題