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

Masuda macindows @ forest.ocn.ne.jp
2006年 10月 9日 (月) 21:09:36 JST


西村様、有難うございます。

NISHIMURA Yutaka wrote:


> phpスクリプトがSJISならば、変数に文字列を入れる際には以下のように
> すべてmb_convert_encodingで内部文字コードに変換してから代入します。
> 
> $val="ほげほげ";
> $val = mb_convert_encoding($val,mb_internal_encoding(),"SJIS");
> 
> while {
>  処理
> $htmlsrc .= $val;
> }
> echo mb_convert_encoding($htmlsrc,"SJIS",mb_internal_encoding());
> 
> などとしてみてはいかがでしょうか?
> 
for($i=1;$i<$count;$i++){
(中略)
$stval = implode(",",$csv);	//($csvは配列になっています。)
$strings .= mb_convert_encoding($stval,mb_internal_encoding(),"SJIS");
$strings .= "\n";
}

とし、
echo mb_convert_encoding($strings,"SJIS",mb_internal_encoding());
と出力してみたのですが、「増田」など一部の文字はちゃんと表示されますが、「線」や一部のカタカナなど
うまくいかない点が見られます。

またプログラムをShift_JISにしてみたのですが、
サーバの設定上、
mb_http_output('SJIS');
ob_start('mb_output_handler');

を書かないとブラウザではUTF-8として認識されるため、ブラウザで保存することを考えるなら、
上記の2行は必要なのではないかと思うのですが(ブラウザがUTF-8として認識してしまうので)、
そうしてしまうと、名前が「c」になったりとなかなかうまくいかず、
何か妙案はないかと考えております。

何か分かりましたらご助言頂けると助かります。
宜しくお願いします。


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



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