例えばjavaで
public static void main(String[] args) {と、EUC-JPで作成した場合に
System.out.println("ほげ");
}
1)まず、コンパイルで怒られた。
# javac Hoge.java「コラー!!"??????"ってなんじゃー!?ASCIIコードマッピングにないでー!怒」
みたいな感じで。
2)だから、コンパイルにエンコードオプションをつける
# javac -encoding euc-jp Hoge.javaするとコンパイルできる。
3)じゃあ実行してみる。予想では標準出力(僕のテスト環境ではコンソール画面)に「ほげ」と出る予定。
しかし、出ない。というか文字化け(?)
# java Hoge4)なんでだろぅ?と熟考したところ、あ!そういえば環境変数LANG=Cにしてたわ!ということで、LANG=ja_JP.euc_JPに!!
5)ところが僕のテストサーバー(ubuntu)は、ja_JP.euc_JPがないみたい、、、。UTF8しかない。
# locale -a | grep ja6)ココらへんからだいぶ曖昧ですが、LANG=に存在しないロケール情報を登録してもLinux側で設定してくれないみたい?
ja_JP.utf8
# export LANG=foobartestest (←ありえないロケール)となるが、実際はデフォルトの(僕の場合はC)LANGで表示される。
# echo $LANG
foobartesttest
7)という事で、ubuntuにEUC-JPとついでにSJISを入れてあげる。
# localedef -i ja_JP -f EUC-JP ja_JP.eucJP入った!
# localedef -i ja_JP -f SJIS ja_JP.sjis
# locale -a | grep ja
ja_JP.eucjp
ja_JP.sjis
ja_JP.utf8
8)では、Linuxコンソールの文字コードをeucjpにして、もう一度
# java Hoge出た!!!!
ほげ
とりあえず、そんな上記のような感じでjavaで日本語表示できました。
まー本来の目的はjavaで日本語表示することではなかったのですが、とりあえずLinuxの言語設定に関して少し知識が増えたかな?という感じでした。
0 件のコメント:
コメントを投稿