PHPとDB(MySQL)を使用したアプリケーションを作成しています。
しかし特定の文字(表や能など)をDBに入力し再度PHPで表示すると文字化けします。
調べて対策を行いましたが改善されません。
(対策)
DBに格納する前にデータをすべてmb_convert_encoding($goo, "EUC-JP", "SJIS");でエンコード
読み込む際にはmb_convert_encoding($goo, "SJIS", "EUC-JP")と戻す。
又、magic_quotes_gpcもoffに。
しかしながら一向に改善されません。どうぞよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
以下をご確認願います
1)php.ini 設定ですが、マルチバイトに関する設定はどうなっていますか?
通常はPHPの内部エンコーディングはEUC-JPが推奨ですので
2)PHPスクリプト,HTMLファイルの文字コードはすべてEUC-JPにしておきます。
HTMLファイルのメタ属性で
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
と追加しておくといいでしょう。
文字化けの大半は上記が正しく指定されていないのに原因があります。
.htaccess設定が可能ならば、
php_flag mbstring.http_input=EUC-JP
php_flag mbstring.http_output=EUC-JP
php_flag mbstring.internal_encoding=EUC-JP
php_flag mbstring.encoding_translation=Off
を指定しましょう。(この設定の場合にはHTML,PHPともにEUC-JPの漢字コードでファイル作成の必要あり)
EUC-JPでの日本語表示はブラウザ側で自動的に判別して表示しますので、心配ありません。
また、データベースの内部文字の扱いはたぶん、EUC-JPとは思いますが、念のためご確認をした法がいいかと。
この回答への補足
遅くなってすいません。
.htaccessの設定をし、php.iniも別のサイトを参考に設定し直しましたら文字化けが解消いたしました。
本当にありがとうございました。
回答ありがとうございます。
>php.ini 設定ですが、マルチバイトに関する設定はどうなっていますか?
magic_quotes_gpc = off のみとなっています。
><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
と追加しておくといいでしょう。
はい、追加しましたがだめでした。文字化けは特定な漢字のみです。
ご指摘いただきましたhtaccess設定ですが、後ほど行い報告させていただきます。
No.3
- 回答日時:
表や脳などのSJISコードの中にはバックスラッシュに相当するコードが含まれています。
そのため文字化けが起こります。addslashes()関数を用いて表示する文字中のバックスラッシュをエスケープするとよいのではないでしょうか?
magic_quotes_gpc = off
が設定されているということですので、表示のときにエスケープしたバックスラッシュが見えるということはないと思います。
参考URL:http://jp2.php.net/manual/ja/function.addslashes …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・【お題】絵本のタイトル
- ・【大喜利】世界最古のコンビニについて知ってる事を教えてください【投稿~10/10(木)】
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mb_convert_encoding で?になる。
-
PHPのif文でその処理を途中で抜...
-
VBSの「MsgBox」について
-
3つ以上の論理積は利用可能なの...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
HTMLに埋め込んだPHPがうまく出...
-
.phpと.incファイルの違いはな...
-
include先でのinclude元の変数...
-
PHPでネットワークドライブのop...
-
apacheの挙動がおかしいです・...
-
項目「sendmail_path」には メ...
-
違法アップロードについて
-
FTPコマンドでディレクトリごと...
-
CGI版PHPで「basuc認証」の...
-
別ファイルの変数を呼び出した...
-
CGI(掲示板)へPDFをアップしたい
-
PHPで、エラーがない場合のみ画...
-
コマンドプロンプト エラー
-
MySQLのdatetime型の月日0を削...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPの文字化けした文字だけ削除...
-
phpのhex2binについてphpで、ut...
-
エンコーディングについて
-
i18n_convert と mb_convert_e...
-
scandir関数取得結果の文字化け
-
mb_http_output()のあと、サー...
-
SJIS→EUCに送っても文字化けしない
-
ハシゴの「高」が「?」に置き...
-
[PHP+MySQL]DBがEUC,出力...
-
文字化け
-
SQLiteManagerが文字化け
-
フォーム受け渡しの際の文字化け
-
文字コードを選択する基準?判...
-
urlencodeしていない日本語をPA...
-
PHPでCSV出力時の文字化け(一部)
-
Fedora7+PHP+MySQLで文字化け
-
携帯サイトからの入力で文字化け
-
文字化け(Shift-jis→UTF-8変換...
-
postやgetで得られたパラメタの...
-
PHPフォームからメールを受信し...
おすすめ情報