こんにちは。
PHPとMySQLを使ってショッピングカートを作ろうと思ったのですが、しょっぱなから躓いてしまいました・・・。
index.htmlでメタを
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
とeuc-jpにしたのですが、サーバーにアップすると文字化けしてしまいます。
表示のエンコードで確認するとシフトーJisになっています。eucにするとちゃんと表示されるのですが、更新するとやはり文字化けします。PHP・MySQLがeucですので、困っています。
どうにか対処方法はないでしょうか?ご教授をよろしくお願いします。
No.3ベストアンサー
- 回答日時:
> eucにするとちゃんと表示されるのですが
ということですので、おそらくサーバからは正しく EUC で送られていて、ブラウザの自動判定が失敗しているのだと思います。
ブラウザで、文字コードが「自動選択(日本語)」にチェックが入っているでしょうか?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
があり、サーバから EUC で送られているなら、ほぼうまく判定してくれるのですが・・・
変な状態のスクリプトがキャッシュに入っていたりする可能性もあります。
いったんブラウザのキャッシュを削除してみたらどうでしょう?
最後にどうしてもダメなら PHP の最初にて
<?php
header( "Content-Type: text/html;charset=euc-jp");
にてヘッダを指定してみてください。
それでもダメなら
<?php
phpinfo();
?>
という phpinfo.php ファイルを作成してサーバにアップしてブラウザからアクセスすることで、サーバの設定を確認してください。
その中の
mbstring
Multibyte (Japanese) Support enabled
Directive Local Value Master Value
mbstring.detect_order auto auto
mbstring.http_input auto auto
mbstring.http_output SJIS SJIS
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.substitute_character no value no value
という設定を教えてください。
ありがとうございます。
phpの最初でヘッダの指定をしたら直りました。
phpinfoでmbstringを見たのですが、
mbstring
Multibyte (Japanese) Support enabled
Directive Local Value Master Value
mbstring.detect_order auto auto
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output no value no value
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.substitute_character no value no value
となってます。
これはどういった意味なんでしょうか?
今後同じようなことが起こったときの参考にしたいので、すみませんが教えて頂けないでしょうか?
よろしくお願いします。
No.2
- 回答日時:
そのPHPを動作させているサーバの設定はどうなっていますか?
PHPは入力、内部処理、出力で別の文字コードを使用します。
入力がs_jisになっていればソースが読まれる時点で化けますし、
出力がs_jisになっていればs_jisで出力される訳ですから
文字コードを「euc-jp」と指定していれば当然化けます。
ありがとうございます。
すみません。サーバの設定はどうやってみればいいのでしょうか?
レンタルサーバなのですが、phpinfoで確認するのですか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
- PHP PHPのエラーの解消法について教えて下さい。 1 2023/02/06 10:48
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- HTML・CSS html cssのmargin 5 2022/12/03 11:04
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
POSTしたデータの文字コードがu...
-
css ,videotタグ。ホームページ...
-
HTML上に貼り付けたPDFが表示さ...
-
iframe内の表示を常に最新にしたい
-
<body>内に<head>を入れ子にで...
-
わざと文字化けさせるには
-
HTMLソースにない文字がブラウ...
-
textareaの一行の文字数制御
-
borderでa:hover下線表示させる...
-
根号の書き方について
-
body内にmetaタグを記述は問題...
-
HTMLファイルのインクルードで...
-
html css
-
HTMLからフォルダを開きたい
-
Excelで、社外秘(閲覧のみ)と...
-
ブラウザの右上にあるボタンを...
-
HTMLで別PCのフォルダを開く
-
googleドライブで、PDFファイル...
-
1つ下の階層のフォルダに相対...
-
URLDownloadToFile でダウンロ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
css ,videotタグ。ホームページ...
-
POSTしたデータの文字コードがu...
-
携帯とPCの自動判別
-
body内にmetaタグを記述は問題...
-
HTMLファイルのインクルードで...
-
HTML上に貼り付けたPDFが表示さ...
-
HTMLでwebサイトを作ってるので...
-
iframe内の表示を常に最新にしたい
-
ページ全体を中央に配置したい...
-
WEBページがIEだけ文字化けして...
-
根号の書き方について
-
リンクボタンにgifアニメを使え...
-
textareaの一行の文字数制御
-
文字化けを故意に表示したい
-
borderでa:hover下線表示させる...
-
IEのみ文字化け
-
safariだけcssが反映されない
-
Javascriptでランダムパラメータ
-
表示時に1回だけリロードさせ...
-
なぜ height 100% がつくのか ...
おすすめ情報