3

次のようなクラスファイルにUnicode文字を設定したいと思います。

TextView tv = ...;
tv.setText("·");

.javaファイルでUnicode文字を使用することに潜在的に問題があるものはありますか?

ありがとう

4

2 に答える 2

4

いいえ。Java 文字列は Unicode をサポートしているため、問題が発生することはありません。クラスがすべての Unicode 文字を処理することを確認する必要があるかもしれませんがTextView(そうするべきです)、Java 自体が Unicode 文字を処理します。

また、ファイルが正しいエンコード設定で保存されていることを確認する必要があります。基本的にこれは、エディタが Java ファイルを UTF-8 エンコード Unicode として保存する必要があることを意味します。詳細については、この回答へのコメントを参照してください。

于 2012-06-06T04:29:10.367 に答える
3

.java ファイルで Unicode 文字を使用すると何か問題がある可能性はありますか?

ご存知のように、JVM 内の文字列は Unicode として格納されます。そのため、問題はJava ソース ファイルで Unicode をどのように処理するかということです...

つまり、Unicode を使用しても問題ありません。アプローチ方法はいくつかあります...

デフォルトでは、javacコンパイラはソース ファイルがプラットフォームのデフォルト エンコーディングであると想定します。-encodingこれは、次のフラグを使用してオーバーライドできます。

-encoding encoding
EUCJIS/SJIS/ISO8859-1/UTF8など、ソースファイルのエンコーディング名を設定します。が指定されていない場合-encodingは、プラットフォームの既定のコンバーターが使用されます。

または、それが単一の文字の場合 (そのように見えます)、ソース ファイルをプラットフォームの既定のエンコーディングのままにし、Unicode エスケープ シーケンスを使用して文字を指定できます。

tv.setText("\u1234");

... '1234' は、必要な文字の Unicode 値です。

もう 1 つの方法は、最初にファイルを Unicode 互換のエンコーディング (UTF-8 など) で保存してから、 を使用native2asciiしてそのファイルをネイティブ エンコーディングに変換することです (範囲外の文字は対応する Unicode エスケープ シーケンスに変換されます)。

NAME
native2ascii- ネイティブから ASCII へのコンバーター

あらすじ
native2ascii [ options ] [ inputfile [outputfile]]

説明
Java コンパイラおよびその他の Java ツールは、Latin-1 または Unicode でエンコードされた (\udddd 表記法) 文字を含むファイルのみを処理できます。native2ascii は、他の文字エンコーディングを含むファイルを、Latin-1 または Unicode でエンコードされた文字を含むファイルに変換します。

outputfile を省略すると、標準出力が出力に使用されます。また、inputfile を省略した場合、入力は標準入力を使用します。

于 2012-06-06T05:18:06.443 に答える