2011/04/09

[java]getBytes()で文字コード変換できるのか

FALPで送信する場合・・・というか、日本国内携帯電話会社のOBEXエンコードはShift-JISだ。
vNoteとか、vMessageとか。
エンコードを指定するタグはあるけど、意味があるのかどうかわからん。
まあ、それは気が向いたらやってみよう。

iconvとか使わんといかんのかと思っていたが、Javaではjava.lang.String.getBytes()でできるらしい。
ほほう、便利なものだな。


引数でCharsetを渡したら、それでエンコードしてくれるらしい。
変換できない文字は、デフォルトの変換用文字に置き換える、ということでいいのかな。
細かく制御したいなら、CharsetEncoderを使えばよいようだ。

さて、Charsetを見ると、Shift-JISは保証されてない。
つまり、実装されていないかもしれない。
うーむ。

まあ、まずは実装のテストだから、Shift-JISが使える前提でいいや。


しかし、getBytes()はどうやって実装されているのだろうか?
大きな変換テーブルがあるんだと思うが、iconvを呼んでいるのかな?

external/icu4cがあるので、これを呼ぶのかなぁ。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。