[PHP-users 30473] 特定の出力ページのみShift_JISにしたい

Masuda macindows @ forest.ocn.ne.jp
2006年 10月 9日 (月) 17:11:45 JST


増田と申します。お世話になっております。

現在フォームから入力された値から出力ページを作っているのですが、
エンコーディングがうまくいかず、ご教授願えればと思います。

現在、サーバ側では、基本的にPHPはUTF-8で動くようにしています。
そのため、UTF-8で作ったhtmlからphpでUTF-8に書き出すことはできるのですが、
書き出す文字コードのみをShift_JISにしたく思っております。
またCSVとして保存したいため、出力時にMETAタグによる指定などは加えたくありません。
書き出すのは、
echo $stringsとしてのみで、それをブラウザで表示し名前をつけて保存するものです。

そのため、フォームのhtmlをContent-Type UTF-8にし、
phpで受け取った値を mb_convert_encoding($_POST["test"], "SJIS", "UTF-8");
としてみたり、htmlのContent-TypeをShift_JISにし、スクリプトphpの文字コードもShift_JISにしたり
mb_http_output('SJIS');
ob_start('mb_output_handler');
など色々と試みたのですが、日本語が「c」や「?」になったりと思うような結果が出ません。

もちろんphp.iniで変えることも可能だとは思いますが、できるだけシステムに影響を与えないような
プログラムができればよいなと思っております。

html自体の文字コード、メタタグで指定する文字コード、phpスクリプト自体の文字コード、
書き出す$stringsの文字コードなど色々組み合わせがあり、どうすればよいのかなかなか理解できないのです
が、ご助言頂ければ助かります。

以下にphp.iniの設定を記載しておきます。拙い説明で申し訳ありませんが、宜しくお願いします。

---    php.ini	-------------------------------------------

default_charset	utf-8

output_buffering	4096	4096
output_handler	mb_output_handler

mbstring.detect_order	no value	no value
mbstring.encoding_translation	Off	Off
mbstring.func_overload	0	0
mbstring.http_input	auto	auto
mbstring.http_output	UTF-8	UTF-8
mbstring.internal_encoding	UTF-8	UTF-8
mbstring.language	Japanese	Japanese
mbstring.strict_detection	Off	Off
mbstring.substitute_character	no value


増田
-- 
Masuda.
mailto:macindows @ forest.ocn.ne.jp



PHP-users メーリングリストの案内