[PHP-users 22183]Re: 8bit出力
ISIGE, Akira
xia @ silvia.com
2004年 6月 11日 (金) 14:45:21 JST
いしげ です.
On 2004/06/11 14:31:27 JST,
Tomoo Nomura <nomurat @ tmo.co.jp> wrote:
> exec ( "/usr/bin/nkf -sx $tmp > $filenm" ) ;
> ここで、上に述べたEUC-JPからShit_JISへの変換をやっていたのですが、ここ
> で、 200 --> 000 の変換が起きていました。
> phpとは関係ありませんでした。
再現コードはできるだけシンプルに,って教訓ですね.
ともあれ原因が判明して良かったです.
> ところで、[PHP-users 22164] いしげさんの結果は何だったんでしょうか?
こちらの環境で \200 が \000 に化けた件でしょうか?
おそらく,internal_encoding=SJIS という「おかしな」設定なので,
スクリプトファイルを読んでリテラル "\200" を解釈する段階で
無効コード(?)として解釈されてしまうのだと思います.
# ちなみにこの現象が起こるのは手元の環境では Linux だけで,
# Solaris も FreeBSD もこれは発生しません.
本当に 0x80 というコードがそこに入ってるのではなく,
"\200" という 4バイトの文字列ですから,
internal_encoding は影響しないでいていただきたいところですが,
対策は非常に難しそうな予感がするので,まだ詳しくは見てません.
--
ISIGE, Akira
PHP-users メーリングリストの案内