前に書いたVodafoneのmailtoリンクの件だが、
3Gを持っている人のを借りたりして調べてみたが、
試した3GはすべてUTF-8でエンコードしてあげないと駄目だった。
結局、3G端末のみSJISエンコードしてあるリンクを
outputフィルタでUTF-8に書き換えてあげることにした。
うちの会社で使っている独自ライブラリのフィルタクラスを拡張して
aタグのmailtoを抜き出し。
同じくライブラリ中のmobileinfoでVodafoneのシリーズを判別し、
一度urldecodeしてからmb_convert_encodingでSJIS→UTF-8に変換し
再度、urlencodeして書き戻してあげる。
懸念事項が1点。
VodafoneにはWシリーズという端末が2つだけある。
V801SH V801SA だ。
普及率も低いし、Wシリーズなるものが、P系か3GC系のどちらになるのだろうか。
あとは、ほかの機種では試していないが、
V902SHで本文が長いと変なエラー画面が表示される。
手元に端末が無いので、正確なエラー文言が今はわからないが、
通常のHTMLのページまで表示しなくなってしまう。
SJISからUTF-8にしてさらにurlencodeすると長くなる。
どうやらそれが問題のようだ。
文字数を削ってあげればちゃんと表示する。
vodafoneの公式サイトのドキュメントを見ると
http://developers.vodafone.jp/dp/tool_dl/web/tech.php
HTML編 1.3.0 2005-04-01
> 送付するメールの本文(body)をmailbody属性で与えることが出来る。
つまり、旧vodafone仕様の指定のしかた。
> また、P4(2)型およびW型では、mailAddrに続けるパラメータ指定でも可能である。
> ただし、指定可能なメール本体の最大長は1Kbytesである。
mailAddrに続けるパラメータ指定とは今話題にしている指定のしかただ。
1Kバイトとは 1024バイトだろうか。
でも、微妙にエラーになる場合のサイズが違う。
それに、subjectを指定した場合のサイズはここ含まれるのか。。
bodyのパラメータ文字列だけならば、900バイト弱でエラーになるし、
パラメータをすべて足したりすると1024バイトを超えてしまう。
もっと細かく調べないとよくわからないが、
いまいちはっきりしない。
Vodafoneの独自仕様は、どんな仕様になっていてもいいが、
せめてドキュメントをもっとしっかりしてほしい。
上記pdfに各タグや属性の対応状況が載っているが、
3GC型はほとんど「△」表示だ。
ってか△ってなによ?
未対応なら「×」対応なら「○」でしょう?
「△」ならば、何をもって△という意味不明な表記をしているのかが知りたい。
来年か再来年か、もっと先か。
新しいキャリアが今後は増えていくのだろう。
その時、Vodafoneがどーなっているのやら…