Date: Thu, 10 Jun 99 01:47:25 JST From: SHUDO Kazuyuki Subject: [JavaHouse-Brewers:25834] Re: multilingualization of javadoc To: java-house-brewers at java-house.etl.go.jp (JavaHouse Brewers ML) Message-Id: <199906091645.BAA09196@cafe.muraoka.info.waseda.ac.jp> 首藤です。 > Unicodeエスケープされたソースが正式なJavaのソースコードですよね。 その通りでした。 > 便宜的にEUCなどで書かれたファイルからの変換がjavacで行われている > だけで。(昔は別コマンドで手動で変換していた。) え、日本語 EUC で書かれたものは、正式な Java のソースコードではないのかっ? …と Java Language Spec. (1.0) を調べました。 確かに `3.1 Unicode' にこうあります。 Except for comments (S:3.7), identifiers, and the contents of character and string literals (S:3.10.4, S:3.10.5), all input elements (S:3.5) in a Java program are formed only from ASCII characters (or Unicode escapes (S:3.3) which result in ASCII characters). 意訳) コメント、識別子、そして、character と文字列リテラルの中身を除いて、 Java プログラムの全ての入力要素は ASCII キャラクタ (もしくは Unicode エスケープ --- これも ASCII キャラクタである) のみから形成される。 すでに結果をご存知の方も多いと思いますが、こんな実験をしました。 Unicode エスケープで記述されたコメント (/** 〜 */) を、 javadoc コマンドはどう扱うのか? 実験環境は、JDK 1.2pre2 for Linux です。 つまりデフォルトのエンコーディングは日本語 EUC です。 Foo.java.eucjp として次の (非正式 ;-p) ソースコードを用意します。 ===== /** javadoc用のコメント。 */ public class Foo { public String aStringLiteral = "リテラル"; } ===== これを、native2ascii コマンドに通し、Foo.java を得ます。 % native2ascii Foo.java.eucjp > Foo.java Foo.java ===== /** javadoc\u7528\u306e\u30b3\u30e1\u30f3\u30c8\u3002 */ public class Foo { public String aStringLiteral = "\u30ea\u30c6\u30e9\u30eb"; } ===== このソースコード Foo.java を、javadoc に処理させます。 (CLASSPATH には . を含めてあります。) % javadoc Foo 生成された Foo.html を見ると… ... javadoc用のコメント。 ... と、ソースコード中では Unicode エスケープとなっていた コメント (/** 〜 */) が日本語 EUC で出力されていました。 (さすがに、Unicode エスケープを HTML ファイル中に出力する ような間抜けなことはしないのですね。) > > ソースコード (.java) は、Unicode では書かれないんです。 > > #私は日本語 EUC で書きます。 > > #シフトJIS な人との共同作業で困るかも。 > > それはまた別問題ですよね。編集の問題ですよね。 ええ。 例えば「ソースコード(.java)は日本語 EUC で書く」などと あらかじめ合意しておくことになるのだと思います。 ソースコード(.java) 中の文字列リテラルやコメント (/** 〜 */) などが 日本語 EUC で書かれていたとして、JDK for Windows の javac, javadoc コマンドは日本の文字 (*) をきちんと扱えるものでしょうか? その逆、シフトJIS で書かれていたとして、JDK for Solaris では? (*) 例えば、(文字集合としての) JIS X0208 に含まれる文字 環境変数 LANG や、プロパティ file.encoding を適切に設定すれば よいものでしょうか。 SHUDO Kazuyuki/首藤一幸 私をたばねないで あらせいとうの花のように shudoh at muraoka.info.waseda.ac.jp