[PHP-users 24411] Re: mb_send_mailの件名に半角カナの使用について

SAITO Masaru daisaito @ lares.dti.ne.jp
2005年 2月 6日 (日) 00:52:48 JST


齋藤@横浜です。

202005/02/05 21:44:21 ごろ
"UCHIDA, Hitoshi" <gin @ kohoku.jac-net.com> さんは
"[PHP-users 24410] Re: mb_send_mailの件名に半角カナの使用について"の件について
以下のように書きました

> ところが、いわゆる半角カナを示す JIS X0201 Kana 文字セットを
> 使うためのエスケープシーケンスはISO-2022-JP  には規定されてい
> ません。
> 
> ですので、規格に厳密に文字列を ISO-2022-JP に変換すると、
> 半角カナは表現できないわけです。
> 
> もちろん、ESC(I を使うなど、ISO-2022-JP に規定されている以外の方法
> を使えば、それなりに半角カナを符号化することはできます。
> 
> これであってるかな>詳しい人

だいたいあっています。
正確には半角カナを表す為のエスケープシーケンスには
決まった方法がないというのが正解です。
とりあえず3種類表現の仕方があります。
検証したのが昔の事なのでメモが見つかりませんでしたが
だいたい以下の3つだったと記憶しています。

・いわゆる半角カナへの切替
・日本語領域にある半角カナへの切替(8bit領域)
・日本語領域にある半角カナへの切替+SI(7bit領域)

ここで確認したいのが、元質問者がなぜ半角カナを使おうとしているのかという
理由です。

私の場合は、携帯端末へのメール送信でしたが、
詳しくは申し上げませんが、docomo,au,vodaphoneへの3キャリア
に同時に通用するエスケープシーケンスは無いということが
わかりました。更にvodafoneに関しては同じエスケープシーケンスでも
2種類の挙動があることがわかりました。
PC宛の場合はメーラー依存です。

つまりクライアント依存なのです。
#ちなみにperlのjcode.p[ml]で半角かなのメール
#をdocomo端末に送ると化けるのはdocomoで使える
#エスケープシーケンスとjcodeのエスケープシーケンスが
#違うからです。これを解決するにはShift-Jisでメールを
#送ることです;-)。
#ちなみに他キャリアではこれは通用しません。

---
SAITO Masaru <daisaito @ lares.dti.ne.jp>




PHP-users メーリングリストの案内