• 締切済み

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); ... ?>

みんなの回答

回答No.3

こんにちは。 えっと基本的なことですけど、どんなエラーがでますか。

yakkuncom
質問者

補足

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がほぼ初期状態のローカルではエラーになってしまいます。

  • tomy06
  • ベストアンサー率25% (58/224)
回答No.2

php.iniの文字コードの設定を確認されてみては?

yakkuncom
質問者

補足

回答ありがとうございます。 php.iniはほぼ初期状態のままです。 ちょっと試してみたのですが良くわかりませんでした。 具体的にphpiniのどこを設定すれば良いのでしょうか? ob_start()よりは、php.iniで設定した方が良さそうなので、 output_buffering = 4096 としてみました。 こうすれば解決するのですが、この設定にするのは一般的ではないのでしょうか?

  • ベストアンサー
回答No.1

UTF-8Nにする

yakkuncom
質問者

お礼

回答ありがとうございます。 UTF-8Nにしたら上手くいきました。 しかし自分が普段使っているエディタはUTF-8Nで保存できないので 更新の度にエンコードし直す必要があり、ちょっと不便ですね・・・

関連するQ&A