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

UCHIDA, Hitoshi gin @ kohoku.jac-net.com
2005年 2月 5日 (土) 21:44:21 JST


詳しいことはネットで検索するなり、書籍を読めば私の中途半端な
知識よりも正確なものがでてくると思いますが、

   ISO-2022-JP ≠ JIS

です。ISO-2022-JP(RFC 1468) は、ISO2022という規格に準拠してい
ますが、ISO2022は、エスケープシーケンスで、複数の文字セットを
切り替えて使うための規格です。

つまり ESC+何らかの文字というエスケープシーケンスがまずあっ
て、それによって次にくる文字コードがいったいどの文字セット
として解釈されるかを決定します。

つまり、どのエスケープシーケンスの後に来るかで、同じバイト列
でも、それがいったいどの文字を示すコードなのかの解釈が変わり
ます。


ISO-2022-JP は、この仕組みで ASCII と、JIS 文字セットのうちで
JIS X0201 ROMAN 、 JIS X0208 を切り替える規格です。

 # 2022-JP-2 とか -3 はよく知らないです

ところが、いわゆる半角カナを示す JIS X0201 Kana 文字セットを
使うためのエスケープシーケンスはISO-2022-JP  には規定されてい
ません。

ですので、規格に厳密に文字列を ISO-2022-JP に変換すると、
半角カナは表現できないわけです。

もちろん、ESC(I を使うなど、ISO-2022-JP に規定されている以外の方法
を使えば、それなりに半角カナを符号化することはできます。

これであってるかな>詳しい人

fujisawa さんは書きました:
>> iso-2022-jp 文字セットには 1byte カナが存在しないので、
>> ?文字に置換されているだけではないですか?
>
>iso-2022-jp という文字セットは要するにJISで表示できる文字という
>ことでしょうか?(今ちょっと調べてみました)
>
>JISで表示できる文字で半角カナをメールの件名に入れることはできない
>のでしょうか?
>もし他の方法で実現できるのであれば、そのように対応したいと思っています。

----
Uchida Hitoshi  gin @ kohoku.jac-net.com


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