2007年12月12日水曜日

 

【文字コード】UTF-8(BOM付)でファイル書き込み【PHP】

PHPでテキストをUTF-8(BOM付)の文字コードでファイルに保存する
以下プログラム。


$filename = "./BlandList.xml";
$fp = @fopen($filename, "wb") or die("Error");
fwrite($fp, pack('C*',0xEF,0xBB,0xBF));//BOM書き込み
fwrite($fp, $sdadata);//データ書き込み
fclose($fp); 

fwrite($fp, pack('C*',0xEF,0xBB,0xBF))でファイルの先頭にBOFを書き込んで、それからテキストを書き込んでいる。
Windows環境ではバイナリがデフォルトらしいが、環境依存を避けるため"wb"としてバイナリデータの読み込み/書き込みを明記。

PHPUTF-8は相性が悪く、数多くの人がエラーや文字化けに陥って頭を悩ませる、誰もが通る道だろう。
UTF-8(BOM付)にいたってはPHPで扱うファイルはUTF-8(BOM無)が推奨されてるので問題外。
こんな面倒くさい事やってないで最初からUTF-8(BOM無)使えと思うだろうが、分担してプログラムやサイトを構築してるとそうもいかない。
今回PHPのプログラムでファイルにデータ追加してFlashから読み込む仕組みを作ったので勝手にファイル形式を変更できなかったので。

ラベル: , ,


コメント: コメントを投稿

登録 コメントの投稿 [Atom]



この投稿へのリンク:

リンクを作成



<< ホーム

This page is powered by Blogger. Isn't yours?

登録 投稿 [Atom]

Google