2012-02-06 7 views
0

私はJavaコードをテストしており、文字列の配列を作成する必要があります。Javaソースファイルに複数のUnicode文字列(右から左への読み方を含む)を入力するにはどうすればよいですか?

ArrayList<String> words = ... 
words.add(<word-in-english>); 
words.add(<word-in-chinese>); 
words.add(<word-in-russian>); 
words.add(<word-in-arabic>); 
:これらの文字列は右から左への読み取り順序とアラビア語のようなものを含む、さまざまな言語の単語、(それが重要かどうかを知りません...)

だから私はこのような何かをする必要があります

これをJavaコードに挿入する最も良い方法は何ですか?文字列中のすべての文字に対して "\ u"エスケープを使う以外の方法がありますか?ありがとう

+0

私はあなたの問題が何であるかわかりません。 Javaでは、 'String word = "Добрыйдень"'のような文を問題なく使用できます。 –

答えて

1

それはあなたがこれらの2つのことを行う必要があります動作させるために:

  • がUnicode形式のソースファイル(UTF-8)を保存します。これを行う方法は、IDE /テキストエディタに依存します。

  • UTF-8文字セットを指定してファイルをコンパイルします。このように:

​​

+0

EclipseでファイルをUTF8として保存しましたが、少なくとも明示的にはコンパイル時にエンコードを指定しませんでした(Eclipseはプロジェクト内のファイルがUTF8として保存されると自動的に行いますか?)。私のコードが正しく動作しているようです。どのように重要な "-encoding utf-8"ですか? –

+0

@IZコマンドラインでコードをコンパイルするのは非常に重要です。そこには、明示的でなければなりません(デバッグコードを含むかどうか、クラスパスかどうか、charsetなど)。おそらく、Eclipseがそれを指定しています。私はEclipseに精通していません(まだ!)、私は通常Netbeansを使用しています。しかし、これらの設定はおそらくプロジェクトのプロパティで見つけることができます。 –

2

エディタ/ IDEのエンコーディングをUTF-8とjavaコンパイラにも設定できます。国際的なプロジェクトでは、これはますます大会になり始めます。

残念ながら、IDEフォントを35 MBなどの完全なユニコードフォントに設定する必要があります。または、逃した中国語の "\ uXXXX"には、native2asciiを使用してエスケープしてください。

ソースによっては、言語ごとにファイルを使用する場合があります。

BufferedReader bufReader = 
    new BufferedReader(
     new InputStreamReader(new FileInputStream(file_name), "UTF-16")); 

ご注意UTF-16へ:

+1

現代のシステムでは、すべての文字を含む単一のフォントは必要ありません。代わりに、指定されたフォントに文字が表示されない場合は、それを必要とする文字を表示するためにフォールバックフォントが使用されます。唯一の要件は、その文字を持つシステムにいくつかのフォントがインストールされている必要があることです。それ以外の場合、すべての文字のグリフを含む 'Last Resort'という名前のフォントがありますが、Unicodeブロックの文字の由来を示す汎用グリフであるため、適切なフォントがインストールされていない場合に使用されます。 – bames53

0

この作品のようなものではないはず。

+0

私は文字列ffomファイルを取り込みしようとしていません、私はソース内の文字列をハードコードしようとしています。 –

1

私が知る限り、RTL言語を含むJavaコードにUnicode文字を入れることは問題ありません。少しIDEに依存しますが、現代のIDEはすべてRTL型をサポートしていると思います。少なくともEclipseはそうです。

UTF-8 charsetを使用してソースコードを保存する必要があります。再度それはあなたのIDEに依存します。私は、ファイルを右クリックし、リソースを選択し、UTF-8にエンコーディングを変更します。

IDEでRTLテキストを入力すると便利でないことがあります。この場合、他のプログラム(MS Word、メモ帳など)を使用してテキストを入力し、それをコピーしてJavaコードに貼り付けます。

BTWは、別のリソースファイルにユニコード文字列を格納することを考えます。通常、より便利です。ために

関連する問題