2012-05-21 42 views
6

アラビア語テキストをjavaに表示しようとしていますが、ジャンク文字が表示されています(例:¤[ï߯[î])。どうすればアラビア語を印刷することができますか?私は、ユニコードとUTF-8に関連するものを聞いた。私は言語で作業しているので、これは初めてのことではありません。私はEclipse Indigo IDEを使用しています。Javaでアラビア文字列を印刷

EDIT: 私がUTF-8エンコーディングを使用している場合、「¤[ï߯[î」文字は「????????」になります。文字。

+1

デスクトップアプリケーションまたはWebアプリケーションで印刷しますか? –

+1

uotputはどこに印刷しますか?コンソールに食べる?標準コマンドラインはユニコードをサポートしていないことに注意してください。 – Hurda

+0

Eclipseコンソールはちょうど* Unicode、Hurdaのプロセスの出力をキャプチャしています。 – Joey

答えて

7

まずはhereをご覧ください。これにより、コンソールでEclipseプリントのUnicodeを作成できるようになります(これは、Eclipseが余分な変更を加えずにEclipseをサポートしているかどうかわかりません)。

これで問題が解決しない場合は、

String str = new String("تعطي يونيكود رقما فريدا لكل حرف".getBytes(), "UTF-8");

をこれは、少なくとも私のために動作します:あなたはこれに似たいくつかの方法で文字列を作成することもできますので、あなたのプログラムは、使用しているエンコーディングの問題。

+1

私はこれで試しましたが、今ではすべての疑問符を表示しています.. –

+0

@ Chandu-Indyaah:あなたは両方を試しましたか?また、正確に何を印刷しようとしていますか?上記の方法は、コンソールと 'JFrame'で私のために働いていました。 – npinti

+0

'.getBytes()'は、プラットフォームのデフォルトのエンコーディングを使用します。これは本質的にランダムな値です。文字列をバイトに変換してからもう一度戻すと、エンコードが一致すると完全に冗長になり、そうでない場合は文字列が壊れます。 –

2

テキストに文字をそのまま埋め込む場合は、プロジェクトのエンコードを正しく設定してください。

+0

いいえ、出力はWebサービス呼び出し –

+3

からのものです。その場合、正しいエンコーディングを使用してWebサービスの応答から読み取る必要があります。 – Joey

1

これはJava SE、Java EE、またはJava ME向けですか? これがJava MEの場合は、LWUITを使用する場合はカスタムGlyphUtilsを作成する必要があります。 ダウンロードこのファイル:Unicodeエンコードの http://dl.dropbox.com/u/55295133/U0600.pdf ルックリスト... そして、このスレッドを見て: https://stackoverflow.com/a/9172732/1061371 モハメド・ナザールの答え(ポスト)でbernamaアレックスKliuchnikauによって編集され、 「次のコードは、のために使用することができますJ2MEにアラビア語を表示String s=new String("\u0628\u06A9".getBytes(), "UTF-8");\u0628\u06A9は2つのアラビア文字のユニコード " U0600.pdfファイルを参照してください。アラビア語の" ba "と" kaf "文字を作成する例をMohamed NazarとAlex Kliuchnikauが示しています。

最後に、「UIがユニコード(私はアラビア文字)をサポートしていることを確認してください」と考える必要があります。 LWUITのようにまだunicode(私はアラビア語)の文字をサポートしていません。 アプリがLWUITを使用している場合は、カスタムコードを作成する必要があります。

+0

は動作しません – Error

関連する問題