|
|
||
http://mobilehacker.g.hatena.ne.jp/tomi-ru/20080724
の件。
っていつの話してるんだよ。おれ。
id:tomi-ruさんすみませんすみません。なんか一回挫折してから後で時間とってやろうと放置してそのまま年越ししてしまいました。
年も越したしどうにも去年のやり忘れということで気持ち悪かったので少し取り組んでみたら結構あっさりできた。
結論からいうと、
softbank to gmail forwardなメールの絵文字はx-iso-2022-jp-kddiでした。
Encode-JP-Mobile/branches/mime/t/mime_encoding.tの
# is( # Encode::decode('MIME-Header-JP-Mobile-SoftBank', '=?ISO-2022-JP?B?GyRCdUEbKEIbJEIkRyQ5GyhC?='), # "\x{E04A}です", # 'softbank mime decode (iso-2022-jp)' # );
のmimeの部分はmimedecodeしてあげると絵文字部分は
\x{7541}とかになってこれはx-iso-2022-jp-kddiの晴れと一緒なのです。
実はこれは
googleの絵文字のUnicode対応表を眺めてて気づいたのでした。ありがとうgoogle。でもなぜかDoCoMoも同じJISコードの表記にこの表だとなってのるはなぞ。gmailに送るときにはそうなってるのかも。要は各キャリアgmail=auという扱い?最初に提携したから?
ちなみに他の絵文字もいくつか試したのですが、gmail=auだとすると
http://mb.softbank.jp/mb/service/3G/mail/pictogram/list.htmlでいうところのau宛てだとゲタになってしまうやつはどうなるんだろう。ちといま実機ないので試せないので明日試す。
http://googlejapan.blogspot.com/2008/04/gmail-no.html
google appsの独自ドメインでも対応してください><
ついでにソフトバンクとも交渉して対応してください><
他力本願なオレorz
というか普通に全ドメインあてに絵文字おくってくれよくださいです>docomo,softbankの中の人
r7422でbranches/get_locator_from_paramsをマージさせていただきました。
しっかしpodの書き方そろそろ本気で覚えないと駄目だわ・・・。
あと英語・・・。
#mobilejpでいろいろとアドバイスを受けr7408の修正をしました。
下記のように使えるようになりました。
use HTTP::MobileAgent; use HTTP::MobileAgent::Plugin::Locator qw/:locator/; # これで、$LOCATOR_AUTO_FROM_COMPLIANT $LOCATOR_AUTO $LOCATOR_GPS $LOCATOR_BASIC が使えるようになる # $LOCATOR_AUTO_FROM_COMPLIANT = 今のtrunkと一緒。GPS対応機ならGPSロケータ # $LOCATOR_AUTO = 入力パラメータによる自動判別 # $LOCATOR_GPS = GPSロケータ # $LOCATOR_BASIC = Basicロケータ my $agent = HTTP::MobileAgent->new; # いままでどおりGPS対応機ならGPSロケータ使用 my $location = $agent->get_location($params); # 明示的にロケータ使用 $location = $agent->get_location($params, { locator => $LOCATOR_BASIC });
テストはもちっと追加しなきゃかも。ドキュメントは英語・・・だとうまく書ける自信なし><
パラメータの自動判別はどうなんだろとid:tokuhirom氏にDISられたので明示的に指定する引数を追加するように方向転換。指定されていなかったら(undefinedだったら)従前通りGPSかどうかで判断してます。
あと、パラメータでの判別も外側でやりたいので
$agent->gps_parameter
を追加しました。
下記のように3種類の使い分けができます。
my $agent = HTTP::MobileAgent->new; # いままでどおりGPS対応機ならGPSロケータ使用 my $location = $agent->get_location($params); # 明示的にBasicロケータ使用 $location = $agent->get_location($params, 0); # 入力パラメータによってロケータを切り分け $location = $agent->get_location( $params, $agent->gps_paramter($params) );
ブランチはget_locator_from_paramsのままです。
GPSでの位置取得は(auは結構早いけど)簡易位置取得に比べ遅いのでユーザに選択させたい(というかさせてる)。
けど現行のH::M::P::Locatorだと機種がGPS対応なら強制的に{Carrier}::GPSのLocatorクラスを使ってしまうのです。
DoCoMo: AREACODEがあるか
au: lat,lonの先頭に+-が付いているか(ちょっと微妙だけど・・・)
ということでその判断を元にLocatorクラスを生成するように修正したブランチを作りました。
どうでしょうか?>id:clouder
Encode::JP::Mobileと組み合わせると便利な
HTTP::MobileAgent::Plugin::Charsetですが、auはSSLにおいてUTF-8が表示できないということで常にx-sjis-ezweb-autoが選択されています。
SSLでのアクセスかどうかを判定できれば、nonSSLの場合はできればx-utf8-ezwebを選択させてあげたいと思うです。
そこで、手持ちのau端末(W44S, W52H)でSSLなページにアクセスしてヘッダを眺めてたところ、
Accept-Charset => 'shift_jis,*'
Accept-Charset => 'shift_jis'
という違いがー。
ちなみに他キャリアではDoCoMoはAccept-Charset自体無し、SoftBankは
Accept-Charset => 'Shift_JIS, EUC-JP, ISO-2022-JP, US-ASCII,ISO-8859-1, UTF-8'
といった感じでした。
=>branche切ってcommitしてみました
居ますか、09078311834 又、本当に色々書いてあることが本当に出来るのでしょうか。
居ますか、09078311834 又、本当に色々書いてあることが本当に出来るのでしょうか。
あらためてうけたw