よろしくです。
下記のphpの本を参考にプログラムを勉強しているのですが、
サンプルコード(完成品)の日本語部分(DBがソースの日本語部分全て)がすべて文字化けしてしまいます。
この本は文字化け対策を強みにした本なのですが、実際のサンプルコードがこんな状態なので非常に困っています。
例えば、表示サイトページ内に3時間というデータが表示される予定だとすると、3??(ハテナマーク)のように表示されます。
ちなみに文字化け後、ブラウザ、DB、phpの文字コード設定はutf8統一であることは確認しました。apacheの文字コードはわかりません。
テスト環境は、自宅のローカルサーバーと、某レンタルサーバーの2つでどちらでも文字化けです。
この本を試した方、もしくはちゃっちゃっと下記サイトからサンプルをとって試していただける方、どうかレスをお願いします。
著書内ではこれでどうだというくらい日本語対策をうたっているのに、全サンプルがNGとは、あまりに不思議な現象で、とても困っています。
どうかよろしくお願いします。
『Head First PHP & MySQL――頭とからだで覚えるWebアプリケーション開発の基本』
Lynn Beighley, Michael Morrison 著、佐藤 嘉一 訳
2010年03月 発行
672ページ
ISBN978-4-87311-444-6
http://www.oreilly.co.jp/books/9784873114446/
関連ファイル ー サンプルコード
に本の中で使われている全てのサンプルが入っています。
No.2
- 回答日時:
直りました。
こちらはMacなので、
miというテキストエディタでUTF-8で上書き保存すると直りました。
htmlもphpもです。
たぶんこのサンプルファイルをzip圧縮したり違うPC間でファイル受け渡しとかしてる間にどっかで壊れたんでしょうねー。
オライリーにクレーム入れたら直してくれるかも。
この回答への補足
回答ありがとうございます。
複数のエディタでUTF-8上書き保存してみましたが駄目でした。そもそもその辺は最初にソースをチェックした時に文字コードチェックもしてたのであまり関係ないはずなのですが。
というか、ソースをエディタで直すのはあくまでブラウザ表示関係ですので、私の直面している症状の根本原因とは少し違うような気がします。reggaepuncさんは、DBから抽出している部分の文字データも?(ハテナや文字化け)ではなく正常表示されているのでしょうか?
ちなみに、数件前の別の方の質問(http://oshiete.goo.ne.jp/qa/7455712.html)にも文字化け関係の話がでていて、その方はmysql_set_charset('utf8'); を使って解決してましたが、一応それも試しましたが駄目でした(というか、mySQLの各文字コードは全てUTF8になっているのでソースでmysql_set_charset('utf8');っても改善見込みは初めからないのですが…)。
No.3
- 回答日時:
文字化けしてるのは、具体的にどこのファイル?
sqlファイルのことかな?
ch02のaliens_abduction.sqlは文字化けしてませんよ。
この回答への補足
ファイルを指定して質問すべきでした。反省します。
おっしゃるようにch02は確かに文字化けしていません。ch02のfinal-report.htmlは送信フォームなのでphpやdbとは無関係で、report.phpはhtmlから送信されてくるデータを表示するのでdbのデータは一切、表示に使われていません。ですからch02はこの質問にはあまり関係ないです。
(ch02にはsqlファイルもありますが、あれは表示にはつかわれていないので本件にはあまり関係ありません。)
>sqlファイルのことかな?
dbのデータを表示すると文字化けするので、sqlファイルは関係のではと怪しんでいるところです。
具体例をあげますと、ch11-finalのindex.phpが、dbからのデータ部分が文字化けします。
(その他ch8とかとにかくdbデータを表示しているサンプルは全体的にですが、ch11の例がindexページ内ですぐにdbからデータをとってきて表示しているのでチェックを掛け易いとおもい、具体例としてあげました。)
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
表示させるだけじゃねーじゃん。
確かにデフォルトだと文字化けした。
でも文字化け回避できた。
--------------------------------
// Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
mysqli_set_charset($dbc, "utf8");// ←追加
mysqli_set_charset($dbc, "utf8");、確かに効きました。$dbcを第一引数にもってくる必要があったのですね。
ch11のそのページの「誘拐レポートをお願いします!」でレコードを追加するとまた文字化けしますね。そこも同様に修正が必要みたいです。
いずれにしても、無事解決方法は分かりましたので、ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- CAD・DTP 「機能ブロック図」の描画用フリーソフトを教えてください 1 2022/09/23 16:12
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- Excel(エクセル) マクロでボタンにつける名前がどこに設定されているかわからないケースがありました。 1 2023/06/19 19:37
- C言語・C++・C# [C言語] コメント文字列を無視して、数値データを読み込むプログラム部分について 5 2022/10/05 11:03
- Excel(エクセル) Excelの操作方法を教えてください!頭文字2~8文字で特定の値に返す方法 8 2022/07/14 11:26
- その他(メールソフト・メールサービス) メールソフトを教えてください 1 2023/03/28 23:32
- Visual Basic(VBA) VBAにてメール作成した際、一部指定箇所のみ赤文字にしたいです。 下記の内容ですと作成されたメール本 1 2022/04/27 13:31
- PHP カラーミーショップのSmartyでの文字列抜き出し 2 2022/05/06 11:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字集合範囲外の文字とパーセ...
-
EclEmmaレポートのエクスポート...
-
UTF8のページでIEがシフトJISを...
-
onedrive にexcelファイルをア...
-
こちらはただの直列処理ですか?
-
ワードプレス、Contact Form 7...
-
拡張子php画像をjpg画像等に変...
-
PHPとCSVで簡易データベースな...
-
include先でのinclude元の変数...
-
リダイレクト元のURLの取得方法...
-
メールフォームのタイトルが文...
-
php エラー
-
PHPのif文でその処理を途中で抜...
-
VBでメールを送る時のSMT...
-
one drive のアップロード失敗...
-
別PHPファイルに変数を渡す
-
ワードプレスサイト PHP8.0.25...
-
パースエラーとは?
-
Image Magickの関数が使えない
-
文字化けで混乱中です...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
EclEmmaレポートのエクスポート...
-
PHPExcelバッファへの書き込み...
-
<meta charset="utf-8"><!-- 文...
-
mysql→EUC-JP、php→UTF-8の時の...
-
ファイルの文字コードを調べる...
-
PHP time()に関しての質問です
-
phpで動的タイトル
-
文字化けについて
-
phpログファイルの文字化けにつ...
-
GEEKLOG(ギークログ) 文字化け
-
batファイルでうまく動かないプ...
-
文字集合範囲外の文字とパーセ...
-
HTTPヘッダはメタタグにも記述...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
-
PHPのif文でその処理を途中で抜...
-
FTPコマンドでディレクトリごと...
-
PHP8を使うと、大量のWarningが...
-
別ファイルの変数を呼び出した...
おすすめ情報