人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php4.2 win ロリポップサーバーにて
インクルード関数を使います。
なぜか文字化けします。

外部から文字を読み込みます。

外部ファイル test.php
================
こんにちは
================

indexファイル
================
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>メール送信</title>
</head>
<body>
<?php
include("test.php")
<?>
</body>
<html>
================

?indexファイルの文字コードがEUCなら文字化けせずに読み込めました。何故でしょうか?
?indexファイルをシフトJISのままで、test.phpを読み込んで文字化けしないようにするにはどうすればいいですか?


●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:INDEX PHP test WIN こんにちは
○ 状態 :終了
└ 回答数 : 6/6件

▽最新の回答へ

1 ● gekikawa
●19ポイント

ロリポップサーバーならばphpの文字コードの設定は.htaccessを使って行えます。

(又はスクリプト内部で行います。)

どのような.htaccessの内容かわからないと適切な回答がしにくいですよ。



想像になりますがなにも.htaccessを設定していないならば、

phpの文字コードがEUC-JPの設定になっているはずなので、

indexファイルがEUCで保存された場合に正しく動作するはずです。


またシフトJIS(SJIS)で作成されたいのならば、全てのファイルはSJIS保存で統一するのと、

文字コードの設定(.htaccessの設置)をしっかりと行う必要があります。

あとロリポサーバー特有の設定については

http://lolipoking.lolipop.jp/php/patio.cgi?

が詳しいです。

◎質問者からの返答

ありがとうございます!!わかりやすいです!!

具体的にhtaccessの文字コードは

.htaccess 中身

====================

EUC-jp

====================

と書けばいいでしょうか?

すいませんおねがいします。


2 ● Yota
●19ポイント

1.サーバの設定でEUC-JPで吐き出すように設定されている。

2.呼び出される側のファイルの設定に

header ("Content-Type: text/html; charset=SJIS") ;

と書けば強制的にSJISになります。

どちらのファイルもSJISで保存してください。

http://www.php.net/manual/ja/function.header.php

◎質問者からの返答

ありがとうございます!

1点確認です。

test.phpに下記をどう付け加えればいいですか?

===================

header ("Content-Type: text/html; charset=SJIS") ;

?>

こんにちは

===================

これだとできませんでした。


3 ● Yota
●18ポイント

このような感じで。

呼び出される方

<?php

header ("Content-Type: text/html; charset=SJIS") ;

echo'こんにちは。' ;

?>

呼び出す方

<?php

include("test.php") ;

?>

http://dummy.com/

◎質問者からの返答

ありがとうございます!

上記をコピペして試しました。

ただ、だめみたいです。

test.phpとindex.phpの文字コードを確認する方法はありますでしょうか?

?どちらのファイルもSJISで保存しているかを確認します。

?他に確認すべき点はありますか??


4 ● GEN111
●18ポイント

test.php じゃなくて、index.php(?)のほうに、

<?php
header ("Content-Type: text/html; charset=SJIS") ;
?>
<html>
<header>

のように入れてみてください。

PHP: header - Manual


5 ● gekikawa
●18ポイント

.htaccessでphpの設定を行う場合の注意

http://ml.php.gr.jp/pipermail/php-users/2001-November/003373.htm...

文字コードの設定

http://jp.php.net/manual/ja/ref.mbstring.php


PHPで文字化けっていうのは、結構色々なパターンがあって、

1)出力形式をブラウザが正しく理解してくれない時

(2番さんが答えているような対策があります)

2)スクリプトの内容(日本語部分)を正しく読み取れていないとき

ファイルの保存形式と、PHPの設定(内部文字コード)が合っていない時

(今回こちらも関係がありそうです)

その他いろいろ


まずは

.htaccessを

----------------------------------------------

php_value output_handler mb_output_handler

php_value default_charset SJIS

php_value mbstring.language Japanese

php_flag mbstring.encoding_translation On

php_value mbstring.http_input auto

php_value mbstring.http_output SJIS

php_value mbstring.internal_encoding SJIS

php_value mbstring.substitute_characternone

----------------------------------------------

と書いて、なるべく上のほうのディレクトリにおいて下さい。

.htaccess自体は、日本語を含まないので、保存するときに文字コードを

気にしないで大丈夫です。

あと内部コードがSJIS(PHPファイルをSJISで保存するということ)

というのは、場合によってそれが原因でスクリプトが思うように動かない

場合があることを覚えておいて下さい。(正規表現を使う時など)


1-5件表示/6件
4.前の5件|次5件6.
関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ