- 締切済み
UTF-8でsetcookieを使うには
初めて利用させて頂きます。宜しくお願い致します。 文字コードをUTF-8で保存したPHPでは出力の前にsetcookie()を使ってもエラーになってしまいます。 そこでANISで保存し、最初にob_start()でバッファリングを有効にし、 その後にinclude()やrequire()で必要なUTF-8のPHPファイルを読み込んでみたところうまくいったのですが、(下記) 他に良い方法はないものでしょうか? PHP4です。 index.php ANIS <?php ob_start(); include "main.php"; ?> main.php UTF-8 <?php ... setcookie("name",$value); ... ?>
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- campanella_77
- ベストアンサー率66% (35/53)
回答No.3
こんにちは。 えっと基本的なことですけど、どんなエラーがでますか。
- tomy06
- ベストアンサー率25% (58/224)
回答No.2
php.iniの文字コードの設定を確認されてみては?
質問者
補足
回答ありがとうございます。 php.iniはほぼ初期状態のままです。 ちょっと試してみたのですが良くわかりませんでした。 具体的にphpiniのどこを設定すれば良いのでしょうか? ob_start()よりは、php.iniで設定した方が良さそうなので、 output_buffering = 4096 としてみました。 こうすれば解決するのですが、この設定にするのは一般的ではないのでしょうか?
UTF-8Nにする
質問者
お礼
回答ありがとうございます。 UTF-8Nにしたら上手くいきました。 しかし自分が普段使っているエディタはUTF-8Nで保存できないので 更新の度にエンコードし直す必要があり、ちょっと不便ですね・・・
補足
Warning: Cannot modify header information - headers already sent by (output started at C:....php:1) in C:....php on line 39 です。 出力後にsetcookie()等を使った時と同じです。 自分が利用しているレンタルWEBスペース(XREA)上ではエラーは出ませんが、(output_buffering=4096の設定になっているから? php.iniがほぼ初期状態のローカルではエラーになってしまいます。