hamada
bungu****@leo*****
2004年 11月 15日 (月) 11:40:19 JST
こんにちわ。 On Mon, 15 Nov 2004 10:42:42 +0900 yukai****@u01***** wrote: > 現在、ページのエンコードをShiftJISで運用したく > 試行錯誤しておりましたが、 > 一部文字化けが発生します。 「出力をsjis化したい」だけならmbstring.encoding_translationを有効にして mbstring.http_outputをSJISにすればいいのでは?? (application_top.php辺りにmb_http_output('SJIS'); って手もアリかな?) まぁ「スクリプトをSJIS化したい」場合はコレじゃ駄目ですけど。 > mbstring.internal_encoding = SJIS ありゃ?! http://de3.php.net/manual/ja/ref.mbstring.php > PHPの内部エンコーディングとして使用可能な文字エンコーディングと 使用できない文字エンコーディングの例を以下に示します。 > > PHPで動作する文字エンコーディング: > ISO-8859-*, EUC-JP, UTF-8 > > PHPで動作しない文字エンコーディング: > JIS, SJIS なんで、たしか内部エンコーディングはEUC(FedoraならUTF8か?)で、出力の みSJISにすべきだったように思います。 > 注意: SJIS は、読者がパーサ/コンパイラ、文字エンコーディングと文字エン > コーディングの問題点について精通していない限り内部エンコーディングとし > て使用するべきではありません。 だそーです。 詳しくは上記url等のマニュアルをご参照ください。 > 例 3. SJISユーザ用のphp.iniの設定 > > ;; 出力のバッファリングを有効に > output_buffering = On > > ;; 出力の変換を有効にするために mb_output_handler を設定 > output_handler = mb_output_handler > > ;; HTTPヘッダ charset を設定 > default_charset = Shift_JIS > > ;; デフォルトの言語を日本語に設定 > mbstring.language = Japanese > > ;; HTTP 入力変換を有効にする > mbstring.encoding_translation = On > > ;; HTTP入力エンコーディング変換をautoに設定 > mbstring.http_input = auto > > ;; SJISに変換 > mbstring.http_output = SJIS > > ;; 内部エンコーディングをEUC-JPに設定 > mbstring.internal_encoding = EUC-JP > > ;; 無効な文字を出力しない > mbstring.substitute_character = none ↑コレとか見ると、PHP側はdefault_charsetとmbstring.http_outputの設定だけ で対応してるように見えます。(自分でやったことないので詳細は不明) > ・mysql Ver 11.18 Distrib 3.23.58, for redhat-linux-gnu (i386) > my.cnfのコード設定 > default-character-set=sjis > default-character-set=sjis > default-character-set=sjis これは[client][mysql][mysqld]の各セクションに書いてるって意味の3連打な んでしょか? 「表」化けは「MySQLで文字コードを設定していない」場合の症状として良く聞 くハナシですが、文字コード自体は設定されてるってことなんですね? my.cnfの[mysqld]セクションに(ふつーセットで設定する) language=/usr/share/mysql/japanese/ みたいな指定は入ってるんでしょか? はまだ