January 26, 2004

javaの多言語対応

An identifier is an unlimited-length sequence of Unicode letters and digits, the first of which must be a letter. Letters and digits may be drawn from the entire Unicode character set, which supports most writing scripts in use in the world today. This allows programmers to use identifiers in their programs that are written in their native languages.

とThe Java(TM) (TM)Virtual Machine Specificationに書いてあったので、試してみたら本当に色んな言語の識別子をコード内で使えるんですね。もちろんコードの文字コードはUTF-8とかにしておく必要がありますが。

下に例をあげます。このコードは本当に動きます。

import java.lang.*;

public class test {
static class 크라스 {
public 크라스() { }
private String collège = "日本語한국어";
}
public static void 関数(크라스 くらす) {
System.out.println(くらす.collège);
}
public static void main(String arg[]) {
크라스 ほげ = new 크라스();
test.関数(ほげ);
}
}


Posted by arai at January 26, 2004 02:33 PM
Comments

昔、これをやられてのけぞった覚えがあります。class ファイル内では UTF-8 で保存されていなければならない、でしたっけ。java ソースファイル内では EUC-JP だろうが Shift_JIS だろうが大丈夫なのかな?(仕様書読むのキライ

Posted by: moyu on January 26, 2004 05:01 PM

本当に日本語で書いちゃった人がいるわけ? いさぎよくていいなあ。命名で悩まなくなりそう。減価償却資産.classとかかっこいい。

javacにエンコードを指定するコマンドがあり、それでUnicodeに変換されてから内部的に処理されるみたいですね。classファイル内はすべてUTF-8です。(漢字差別だ)

だれか右から左へかく言葉とかでも試してほしいなあ。コードがすごいことになりそう。

Posted by: arai on January 26, 2004 05:10 PM

他国語ファイル名を Unicode 以外の文字セットで扱うように実装されてる場合(Windows 9x 系列とか)って、class ファイル名はどうなってしまうのかしら。と、考えると、どきどきして眠れません。これって恋?(んなわけねえ

Posted by: moyu on January 27, 2004 02:05 AM

うーん、どうなるんでしょうねー。Windows 2000では問題なく動いてましたけど。(関係ないですがMicrosoft製品にも韓国語ファイル名や韓国語がうまく扱えないソフトとかが多くてむかつく。)

こういう話題でどきどきしちゃうなんて、某社っぽいですね。最近はJava VM仕様など読んでます。うぐぐ。

Posted by: arai on January 27, 2004 02:16 AM

×他国語 → ○多国語でした。うぐぐ。

Posted by: moyu on January 27, 2004 02:44 AM

クラス名を日本語とかにすると、ファイルシステムとの兼ね合いで失敗することが多いようです。
メソッドとかならほとんど問題ないようです。

Posted by: sakurai on January 27, 2004 08:25 AM
Post a comment














Please enter this 6digits Security Code (for SPAM's sake...).
spam対策のため6桁のセキュリティコードを入力してください。