[PHP-users 306] Re: php4.0.6とPostgerSQL での日本語コードについて!

Rui Hirokawa php-users@php.gr.jp
Wed, 27 Jun 2001 07:29:24 -0500


廣川@ハンツビルです。

出力の文字エンコーディング変換は、PHP4の出力のバッファリング機能を利用し
ていますので、その設定が必要です。

PHPスクリプトから出力する文字のエンコーディングは、
内部エンコーディング(通常はEUC-JP)に統一し、出力のバッファリングのハン
ドラを使って出力したいエンコーディング(例えばShift_JIS)に変換します。

LinuxサーバからShift_JISでクライアントに出力する場合、お勧めは、
以下のようにすることです。

1.設定ファイル(php.ini)で以下のように設定

output_buffering = On ; (これは変更しなくても動くようです。)
output_handler = mb_output_handler ; 出力バッファリングハンドラを設定

mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = SJIS

2.スクリプトのエンコーディングをEUC-JP (またはUTF-8)にしてPHPスクリプト
を作成。

PHPスクリプトもShift_JISではなく内部エンコーディングと同じエンコーディン
グ(EUC-JP)で作成してください。

On Wed, 27 Jun 2001 21:02:02 +0900
Morihiko Inamine <ina@swsys.co.jp> wrote:

Morihiko> 稲嶺と申します
Morihiko> php4.0.6とPostgreSQL7.1(linux)で
Morihiko> phpのスクリプトはSJISで書き
Morihiko> PostgreSQLのコードはEUC-JPで行きたいと思っているのですが
Morihiko> いざ、WindowsのIEで表示させるとスクリプトのecho();で書いた文字はSJISで表示され
Morihiko> PostgreSQLより取得した日本語はEUC-JPで表示され、文字化けしてしまいます


-- 
Rui Hirokawa <louis@cityfujisawa.ne.jp>
                  <hirokawa@php.net>