
前回、PHPからデータベースへの登録について質問させていただきました。
今回はデータベースに登録した情報をブラウザ上で呼び出す際の
文字エンコードの設定について質問させていただきます。
お手数おかけいたしますがよろしくお願い致します。
以下、一部は省略していますが動作環境とソースの内容です。
DBサーバー : EUC
Webサーバー : Shift_JIS
呼び出す側のPHP : EUC
▼ dataload.php
****************************************************************************
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
</head>
<body>
<?php
ini_set("mbstring.internal_encoding", "eucjp");
ini_set("mbstring.http_output", "eucjp");
// データベースに接続
~ 省略 ~
// データベースの選択
~ 省略 ~
$str_sql = "select * from FORM_DATA";
$sql_re = mysql_query('SELECT * FROM FORM_DATA', $db);
while ($data = mysql_fetch_array($sql_re)) {
echo '<p>' . $data['DataNumber'] . ':' . $data['Time'] . ':' . $data['Name'] . ':' . $data['Email'] . ':' . $data['Area'] . ':' . $data['Sex'] . ':' . $data['Interest'] . ':' . $data['Comment'] . ':' . $data['OS'] . ':' . $data['IP'] . "</p>\n";
}
#$rs = mysql_query($sql_re,$db);
#if(!$rs) {
# exit('<br /><br />Error! データの呼び出しに失敗しました。');
#}
// データベース接続を閉じる
$db = mysql_close($db);
if (!$db) {
exit('データベースとの接続を閉じれませんでした。');
}
else{
print "データベースとの接続が切れました。<br />";
}
?>
<br />登録データの呼び出し完了しました。<br /><br />
<a href="index.php">最初に戻る</a>
</body>
</html>
************************************************************************
PHPソースの内容は以上です。
動作的には問題なくDB内の情報が表示されます。
ただし、ブラウザの文字コードが「Shift_JIS」のまま切り替わらず、
ブラウザの文字エンコードを「EUC」に変更しなければ文字化けしてしまう状況です。
<meta>で文字コードを指定し、ini_set()でさらに「EUC」を指定してあるのですが
アクセスした時点では文字コードは変わらず文字化けてしまいます。
ini_set("mbstring.internal_encoding", "eucjp");
ini_set("mbstring.http_output", "eucjp");
まだまだ勉強不足で根本的に抜けている点があるかもしれませんが、
可能なら解決策をご教授いただけますと助かります。
よろしくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
Webサーバの設定で
AddDefaultCharset Shift_JIS
になっているでしたら meta タグで指定しても変更されません。
この場合「httpd.conf」を管理者にお願いして変更するか「.htaccess」で設定します。
変更内容は
AddDefaultCharset Off
です
サーバの利用形態がわかないので適切な回答ではありません、サーバ管理者に相談されて変更は行ってください。
早速のご回答ありがとうございます。
事情によりサーバー側の設定は変更できません。
説明不足で申し訳ありません。
入れ違いとなりましたが、下記の設定をソースの最初に追加しましたら解決しました。
<?php header("Content-type: text/html; charset=EUC-JP") ?>
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SplFileObject を利用したとき...
-
phpの問い合わせフォームを作っ...
-
PHPSpreadsheetによる書き出し...
-
EC-CUBEをeclipseからコンパイ...
-
php エラー
-
PHP8でWarning:Undefined varia...
-
composerをインストールしたい...
-
php エラー
-
phpinfo で MySQL のバージョン...
-
コメント機能に返信欄を矢印で...
-
marginの値でマイナス値を設定...
-
submitで思うようにページが遷...
-
HTML PHP ラジオボタンのイベント
-
php でqiitaのサイトにあったフ...
-
PHPの勉強してます。 配列のと...
-
BASIC認証のフォームをデザイン...
-
アップロードファイルを表示す...
-
複数のパソコンの中の1つのパソ...
-
返信機能のツリー構造の深さを...
-
PHPについて。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
windwsXP環境下でapache2.2、ph...
-
お名前comのPHPとmysqlの接...
-
php→mysqlへの接続が出来ない(...
-
xamppliteでmysqlにアクセスしたい
-
mysqlへのデータ挿入
-
文字エンコードの設定について
-
localhostにリダイレクトされて...
-
エックスサーバーでのmysql設定...
-
hpinfoにmysqlやmysqliが表示さ...
-
My SQL の文字化け
-
phpでmysql接続について
-
php.iniのMYSQLの部分ですが…ど...
-
データベースへの持続的接続
-
MySQLから送られて来たデータの...
-
勉強の甲斐あっていよいよPHPフ...
-
mysql_connectについて
-
ネット上の無料サーバースペー...
-
CentOS5.3に、apache2.2.15とph...
-
CentOS5のPHPにMySQLサポートを...
-
PHP+MySQL+phpMyAdmin パスワ...
おすすめ情報