[PHP-users 30748] Re: Windows + PHP で UTF-8 を扱う

goungoun gounx2 @ gmail.com
2006年 11月 19日 (日) 16:15:37 JST


こんにちは。

On Sun, 19 Nov 2006 15:02:37 +0900
chores @ jp1.cx wrote:

> 塚田です。
> 
> > PHPの環境がUTF-8であれSJISであれEUCであれ、Windowsのファイル
> > システム上のファイル名はSJISでしょうから、PHP側から見るときも
> > SJISでないとアクセスできないというだけでしょう。
> 
> Windows 2000 / XP では SJIS ということは無いと思います。
> 
> 少なくとも、私のPC (Windows XP SP2 日本語版) では、日本語とタイ語の混在
> したファイル名を扱えます。
> 

私も書き方がまずかったので、もう少し私の知ってる範囲で正確に書きます。

今のWindowsがカーネルレベルではUnicodeで処理しているのは知っていますが、
PHPとWindows間がどのようなルールでやり取りされているのかまでは私は把握していません。

その上で、PHP4+WindowsXPの環境(Xampp使用)で実際にやってみた経験での
話をすると、

PHP上のmb_internal_encodingが何であれ、
file_existsなどOSのファイル名をパラメータとして与えるものについては、
SJISに変換した文字列をファイル名として与えないとアクセスできなかった。

ということです。

実際に試したのは、mb_internal_encodingが SJIS,EUC,UTF-8です。

ps.
影響はないと思いますが、より正確に書くなら、先のメールで
>$filename = '//server/share/dir/日本語.mdb';
として、ネットワーク越しにアクセスしているようですが、
私の経験上の話は、ローカルの普通のファイルです。




-- 
goungoun <gounx2 @ gmail.com>
http://goungoun.dip.jp/app/



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