「SableVMで日本語Encoding(Shift_JIS, Windows-31J)の追加方法」の編集履歴(バックアップ)一覧に戻る

SableVMで日本語Encoding(Shift_JIS, Windows-31J)の追加方法 - (2007/05/30 (水) 18:09:22) のソース

*SableVMで日本語Encoding(Shift_JIS, Windows-31J)の追加方法
SableVMが使用しているSableVM-Classpath(Sunのrt.jarに相当)にはShift_JIS、Windows-31J、EUC-JPなどの日本語Encodingが利用できないため、JavaのAPIで提供されているCharsetProviderを利用してJREにCharsetを追加してあげます。

Tomcat4を起動している場合は手順実施後に再起動が必要です。

>KUROBOX-PRO:~# /usr/lib/sablevm/jre/lib
>KUROBOX-PRO:/usr/lib/sablevm/jre/lib# mkdir ext
>KUROBOX-PRO:/usr/lib/sablevm/jre/lib# cd ext
>KUROBOX-PRO:/usr/lib/sablevm/jre/lib/ext# wget http://prdownloads.sourceforge.jp/jeextension/25616/gnu-charset-ja-jp_1.0.0.jar
>KUROBOX-PRO:/usr/lib/sablevm/jre/lib/ext# ls -l
>total 12
>-rw-r--r-- 1 root root 10887 2007-05-30 17:54 gnu-charset-ja-jp_1.0.0.jar

※なぜか/usr/lib/fjsdk/jre/lib/extの指す/usr/lib/sablevm/jre/lib/extがないため、extを作成してからwgetでCharsetProviderをダウンロードします。

試しにサンプルプログラムで有効なCharsetをすべて表示してみます。
> KUROBOX-PRO:~#vi DisplayCharsets.java
> public class DisplayCharsets {
>     public static void main(String[] args) {
>         java.util.Map map = java.nio.charset.Charset.availableCharsets();
>         java.util.Iterator enum = map.keySet().iterator();
>         while (enum.hasNext()) {
>             String key = (String) enum.next();
>             java.nio.charset.Charset val = (java.nio.charset.Charset) map.get(key);
>             System.out.println(key + "=" + val.aliases());
>         }
>     }
> }
> KUROBOX-PRO:~#javac DisplayCharsets.java
> KUROBOX-PRO:~#java DisplayCharsets

Shift_JIS、EUC-JP、Windows-31Jが表示されていれば成功です。

----
最終更新日:&date()