アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくです。
下記の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/
関連ファイル ー サンプルコード
に本の中で使われている全てのサンプルが入っています。

A 回答 (5件)

ほんとだ。

ブラウザでアクセスすると文字化けしてるwww
ひどいwww
ちょっとまって。調べるから。
    • good
    • 0

直りました。


こちらは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');っても改善見込みは初めからないのですが…)。

補足日時:2012/05/07 02:49
    • good
    • 0

文字化けしてるのは、具体的にどこのファイル?



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からデータをとってきて表示しているのでチェックを掛け易いとおもい、具体例としてあげました。)

よろしくお願いします。

補足日時:2012/05/10 09:00
    • good
    • 0

/ch11/final/aliens/index.php


にアクセスしたけど、
DBに接続されないお。

接続先のドメインも失効してるお。

sqlファイルも文字化けしてないし。

この回答への補足

dbは事前にご自分の環境に構築しないと駄目ですよ
その点はどの書籍でも同じです
db環境を作って、sqlファイルからデータをインポートして、やっとdbをphp用に使えるようになります

補足日時:2012/05/11 03:31
    • good
    • 0

表示させるだけじゃねーじゃん。



確かにデフォルトだと文字化けした。
でも文字化け回避できた。

--------------------------------
// Connect to the database
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
mysqli_set_charset($dbc, "utf8");// ←追加
「Head First PHPサンプルコー」の回答画像5
    • good
    • 0
この回答へのお礼

mysqli_set_charset($dbc, "utf8");、確かに効きました。$dbcを第一引数にもってくる必要があったのですね。

ch11のそのページの「誘拐レポートをお願いします!」でレコードを追加するとまた文字化けしますね。そこも同様に修正が必要みたいです。

いずれにしても、無事解決方法は分かりましたので、ありがとうございました。

お礼日時:2012/05/12 07:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!