[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 メーリングリストの案内