[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 メーリングリストの案内