tomi-ruのモバイル日記

profile
記事とカテゴリ一覧はこちら

2010-12-23

MIME-Header-ISO_2022_JPエンコーディングがdecodeサポートしてない件

15:57 | はてなブックマーク - MIME-Header-ISO_2022_JPエンコーディングがdecodeサポートしてない件 - tomi-ruのモバイル日記

エンコーディングのくせにencode()しか対応していないとはキモくない?

https://rt.cpan.org/Public/Bug/Display.html?id=64166

というpatchをEncodeにRTしました。

実際はMIME-Headerというエンコーディングがあり、それが =?ISO-2022-JP?B? というものもうまくdecode()してくれるのでMIME-Headerなものをdecode()したければそれを使えばよい。

MIME-Headerは、encode()すると=?UTF-8?B?固定なので、encodeで=?ISO-2022-JP?B? を作りたい用としてMIME-Header-ISO_2022_JPができた、という経緯なのでこうなってるわけですね。

送ったパッチだとMIME-Header-ISO_2022_JPでdecode()するとMIME-Headerでdecode()したのと同等になるだけだけど、encode/decodeできてわかりやすくなると思います。

→ MIME-Header-ISO_2022_JPはencodeのみ、decodeするならMIME-Headerを使え、とのことでした by dan the Encodeメンテナー

https://rt.cpan.org/Public/Bug/Display.html?id=64166

ふむ。まあぼくは別に困らない(いままでも困ってない)のだけど、エンコーディングなのにdecode()できないのはハマる人がいそうだ。

iso2022jpだけdecode()できるようなパッチを書けばいいかなあ。


Email::MIME::MobileJP

15:45 | はてなブックマーク -  Email::MIME::MobileJP - tomi-ruのモバイル日記

http://search.cpan.org/perldoc?Email::MIME::MobileJP

tokuhirom氏がEmail::MIME + Email::Address::JP::Mobile ( + Tiffany) 的なのをつくってくれました。

Encode::JP::Mobile はちょっとPODが汚いのと、それを差し置いても http://coderepos.org/share/wiki/Mobile/Encoding これをしっかり読んでもじゃあどうしたらよいのか?ってむずかしさが残ります。Email::Address::JP::Mobile もそのへんを解消すべくおすすめエンコーディングを出すものにしてみたのだけど、

こちらはさらに進んでメール送受信周りをまとめてしまってあっていいですね。Email::MIMEやEncode::JP::Mobileのエンコーディングの使い方の例としても使える。

Googleとかがまとめたemoji4unicodeが、いい感じのマッピングをできるのかと思いきや、やはり完全に中立的な相互変換可能なマッピングにはならなかったようなので(出典 http://kawa.at.webry.info/201010/article_1.html )、ふつうに Encode::JP::Mobile が生き続けそうだ。なのでPODは、もうすこしわかりやすく書き直したいですねえ。あとemoji4unicodeが提唱されている現在、英語でも書いてあった方がいいんじゃないだろうか。

#mobilejp@freenodeではPODきれいにまとめられるエンジニアを募集中です。

JetsynJetsyn2011/12/24 02:07It's good to see someone thinking it thrugoh.

lbtlpkgqeslbtlpkgqes2011/12/24 17:35Z3qX3b <a href="http://tmdbjtszmbkb.com/">tmdbjtszmbkb</a>

zhhztraoojzhhztraooj2011/12/25 02:11vHL4j0 , [url=http://yiaeyirowqna.com/]yiaeyirowqna[/url], [link=http://hchxkwnkgdsr.com/]hchxkwnkgdsr[/link], http://brbuqkfecrnv.com/

uvargfuvargf2011/12/25 18:41bFtr9W <a href="http://nvbbmpswhhlt.com/">nvbbmpswhhlt</a>

vhwveuqbinvhwveuqbin2011/12/25 23:23emUeAl , [url=http://wjgbmodmkudt.com/]wjgbmodmkudt[/url], [link=http://qounrwtdbbef.com/]qounrwtdbbef[/link], http://uhdugvjexfxu.com/

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20101223

2010-05-18

MIMEエンコーディング

11:53 | はてなブックマーク - MIMEエンコーディング - tomi-ruのモバイル日記

Encode::JP::Mobile 0.27 がUPされました

http://search.cpan.org/~coderepos/Encode-JP-Mobile-0.27/

  • perl5.12でtestコケてたのをtokuhiromさんがなおしてくれました http://d.hatena.ne.jp/tokuhirom/20100508/1273307508
  • あとずいぶん前からbranchに入ってたmimeエンコーディングが追加されてます。 MIME-Header-JP-Mobile-なんちゃら が使えるようになります。
  • 機能は追加があっただけで既存のものの変更はなし。

mimeエンコーディングが使えるようになったのを受け、Email::Address::JP::Mobile のエンコーディング機能追加版をUPします。(実はささいなバグfixとしてあげてしまったのでちゃんとChanges書き直して再UPした今)

http://search.cpan.org/~tomita/Email-Address-JP-Mobile-0.04/

AbdelghaniAbdelghani2012/07/17 03:48I'd venture that this atircle has saved me more time than any other.

uwusldftduwusldftd2012/07/19 02:10wctSSn , [url=http://hnpmzyczzlyc.com/]hnpmzyczzlyc[/url], [link=http://plshgiylxhpv.com/]plshgiylxhpv[/link], http://ejdwpyjtgdla.com/

dpchcbigdpchcbig2012/07/19 21:531CmNX9 , [url=http://vxkgvjjjkesc.com/]vxkgvjjjkesc[/url], [link=http://qejqwcefmani.com/]qejqwcefmani[/link], http://zyrgefszamnn.com/

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20100518

2010-03-09

Email::Address::JP::Mobile のエンコーディング機能追加版

| 19:04 | はてなブックマーク - Email::Address::JP::Mobile のエンコーディング機能追加版 - tomi-ruのモバイル日記

Encode::JP::Mobile がmimeサポートしたらUPする版をtrunkに用意した。

http://coderepos.org/share/changeset/36969

送信用エンコーディングを返す mail_encoding が名前としてわかりにくいというのがあったのでwalf443さんだったかの案どおり send_encoding にした。

受信メールパース用のやつは parse_encoding としてみた。Content-typeを見て出してるわけではないよという注意も書いておいたのでこれでよいだろう。

walf443さんがやってる Email::MIME::JP::Mobile については、パース時本文を持っているわけなので parse_encoding に頼らず、今までどおり Content-typeをチェックするほうが良いと思う。

やはり AirHの文字が哀愁をさそいます


mimeブランチをマージ

| 16:54 | はてなブックマーク - mimeブランチをマージ - tomi-ruのモバイル日記

http://coderepos.org/share/browser/lang/perl/Encode-JP-Mobile/trunk

2年くらいの時を経て!、mime branchがマージされました。

機能は追加のみで、MIME-Header-なんちゃらが追加されたのみです。

ついでにPODを手直ししたらどうかなと思います。「このモジュールの実装は EXPERIMENTAL です。」とかそろそろ取ってもいいころかな?と。

POD読んでわかりにくいなーと思ってた方手を入れてくださいまし。Encode::JP::MobileのPODは基本日本語ですので。ぼくも後でできるだけやります。

やはりAirHの文字が哀愁をさそいます

OrquestraOrquestra2015/08/11 17:09My prloebm was a wall until I read this, then I smashed it.

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20100309

2010-02-22

Email::Address::JP::Mobile

11:54 | はてなブックマーク - Email::Address::JP::Mobile - tomi-ruのモバイル日記

http://svn.coderepos.org/share/lang/perl/Email-Address-JP-Mobile/trunk/

いったんこのmime_encodingとかのメソッドは抜いた版でshipit、Encode::JP::Mobileのmimeブランチ完成後おすすめエンコーディング追加してアップデートしようと思います。

むだにModule::Pluggableつかってたり、Email::Addressにたくさんメソッドはやそうと考えていた時代のAUTOLOADがあったので消したりPODを修正したりしました

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20100222

2010-02-19

2年ぶりに

01:04 | はてなブックマーク - 2年ぶりに - tomi-ruのモバイル日記

#mobilejp でメール送信まわりのモジュールでUPされてないやつどうだっけと聞かれて。ナウシカをBGMに、ここに書いた自分の過去のメモなど見つつ思い出してみた。基本情報としては

  • メール送信時キャリアにあわせて件名のMIMEエンコードと本文のエンコードを分岐するあたりを何かに吸収したい
  • メールパース時の同様の分岐するあたりを何かに吸収したい。ただし絵文字が取れるパターンは少ない

Encode::JP::Mobile の mimeブランチ

MIME-Header-なんちゃら エンコーディングを追加する?っていうブランチ

http://mobilehacker.g.hatena.ne.jp/tomi-ru/20080724

miyagawaさんが眠らない人として有名、ってwhite camel賞もらったころの話ですね。au 以外はみんなゲタになるから無視しようとしたら、Softbankからgmailに投げた時のみ絵文字が取れるぽいからさポートしようか?って言うあたりでとまっていたらしいけど

http://mobilehacker.g.hatena.ne.jp/nihen/20090104/1231081872

http://coderepos.org/share/changeset/36808

これを見るに、 x-iso-2022-jp-softbank は無理に作らず、普通に無視してx-iso-2022-jpしちゃえってことかな?


Email::MIME::JP::Mobile

草案: http://mobilehacker.g.hatena.ne.jp/tokuhirom/20080729/1217321096

walf443 さんが作りかけてる。 http://github.com/walf443/p5-email-mime-jp-mobile

walf443さんのでは、Encode::JP::MobileのMIME-Header-なんちゃらエンコーディングに依存しているけど、その機能もまるごと含んでしまう、っていうのもありだと思う。ただEncode::JP::MobileにMIME-Header-なんちゃらエンコーディングがあると、何かと便利な気はする。メールの受信にEmail::MIMEを使うケースはあっても、送信にEmail::MIME使わないケースがあると思うので。(MIME::Lite派とか)

どうでもいいけど ::Jp:: が ::JP:: だと間違えなくていいきがする


Email::Address::JP::Mobile

Mail::Address::MobileJpのEmail::Address版。これshipitしてなかったけど、Email::Addressのオブジェクトから->carrier->nameとかが取れるのは悪くないなので出そうと思う。

ただオススメエンコーディングを出すところで詰まっていたぽい。とりあえず、Encode::JP::Mobileまたずにオススメエンコーディングを出すのをはずした状態で一発upしようかな。あしたあたり。あとなんでこれ Module::Pluggable つかってんだろ


Encode::JP::Emoji

メール送受信の件と関係ないけどこの2年間に出ていたkawasakiさんの類似モジュール。Encode::JP::Mobileとの違いは

  • GoogleとかがUnicode界に提出したemoji4unicodeのマッピングを利用したマッピングを利用。Encode::JP::Mobileは端末の内部仕様に合わせた独自領域を使ったマッピングをしている。
  • このマッピングを利用するといい点: 将来、メイリオとか普通のフォントがそのコードをサポートすると絵文字を画像じゃなくてフォントで出せるようになる。のかもしんない
  • マッピングがちがうので、既にDBにEncode::JP::Mobileでencodeしたutf8でつっこんでいる場合は、途中でEncode::JP::Emojiに変えるにはいったんコンバートしないとだめだよね
  • あと置換でやっているので速いらしい。個人的には未検証。Encode::JP::Mobileでucmを使っているのは、Encode::ってそういうものだろっていうのと、ucm使ったほうがcのマップになるから普通に速いだろJKっていう考えだった気がする。
  • メール本文のdecode/encode関連のエンコーディングはないぽい
  • PerlはUnicodeにべったりであるので、いずれemoji4unicodeが正式なものになった場合、このマッピングを使ったほうが気持ちいいのかも?
  • Android/iPhoneがこのマッピングで絵文字を使い始めたら、Encode::JP::Mobileも内部でemoji4unicodeのマッピングを使うか、emoji4unicodeのマッピング→Encode::JP::Mobileの現在のマッピングにするエンコーディングをEncode::JP::Mobileに追加する必要がありそう

て感じかな


AirHの文字が哀愁をさそいます

トラックバック - http://mobilehacker.g.hatena.ne.jp/tomi-ru/20100219