« 横持ち状態で仮想キーボードを表示するとEditTextが1行表示になる | トップページ | Androidでメモ帳を作ってみた »

2010年12月27日 (月)

androidにはJISAutoDetectが無い

なんだかよく分からないテキストデータを開く際に使いたくなる「JISAutoDetect」ですが、Androidで使おうとしたらjava.io.UnsupportedEncodingExceptionになりました。

まあ、無いものは無いのだろうということで諦めることにしたのですが、なんか気持ち悪いので
java.nio.charset.Charset#availableCharsets()をJ2SEとAndroid双方で実行して結果を比較してみました。
かなり数があったので、我々日本のプログラマに関係ありそうなやつだけ抜粋すると、



※J2SE5(1.5.0_22)にしか無いもの


  • JISAutoDetect
  • EUC_JP_Solaris(EUC_JPにWindows-31Jの拡張文字を追加したやつ)
  • ISO8859-1(IANA登録名はISO_8859-1:1987で、これは双方にあります)
  • JIS0201(IANA登録名はJIS_X0201。これもJ2SE5には存在するものの、Dalvikには無い)
  • JIS0208(IANA登録名はJIS_C6226-1983。同上)
  • JIS0212(というかそもそも名前に「JIS」と入っているやつは全滅)
  • Windows-31J(マイクロソフト拡張のShift_JISで、これがIANA登録名。むむむ・・・)
  • MS932(正式名はWindows-31J)
  • jis(ISO-2022-JPなら双方に存在する)



※Dalvik VM(Xperia:Android 2.1)にしか無いもの


  • cp932(Shift_JISのエイリアス)
  • ms932(Shift_JISのエイリアス)
  • UTF-32(これは純粋にJ2SE5が対応していないもの)
  • x-docomo-shift_jis-2007(よくわからず)



※双方にあるがエイリアス元が異なるもの


  • csWindows31J(J2SEではWindows-31Jのエイリアスになっているが、DalvikではShift_JISのエイリアスになっている)



基本的にDalvikにおいてはJIS規格名は全滅っぽい。
しかしだからといってISO規格名やIANA登録名なら存在するかというと、そうとも言い切れない模様。
他にもJ2SEでは「-」や「_」の間違いを含んだもの等、いろいろエイリアスが存在している(shift-jisとかeuc_jpとか)ものの、Dalvikはそういうものはあんまり無い。
ちゃんと正式名称を使えということなのでしょう。


てか、Windows-31JとShift_JISは別物のはずなんだけどなぁ。いいのかなぁ?
J2SE 1.3以前の悪夢が蘇る・・・のか?

« 横持ち状態で仮想キーボードを表示するとEditTextが1行表示になる | トップページ | Androidでメモ帳を作ってみた »

Android」カテゴリの記事

コメント

実際のところ
なんだかよくワカメなテキストデータを
android端末で照会する機会って
結構多いの?

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/561728/50415476

この記事へのトラックバック一覧です: androidにはJISAutoDetectが無い:

« 横持ち状態で仮想キーボードを表示するとEditTextが1行表示になる | トップページ | Androidでメモ帳を作ってみた »