くろあん徒然日記

PCのネタが多い雑記。全てに関して『ド素人』が書き綴るTipsエントリの数々……信憑性はいかほどだろう?

MySQLから取得する文字列が「?」(クエスチョンマーク)になる件

※ここから新しいエントリです。
(一度新しいエントリを書き起こしました。スターをつけてくれた人、ごめんなさい!

 

というわけで今日はPHPのお話。

なんでPHP触って数ヶ月の自分がこんな偉そうにエントリを書こうとしているのか良く分からん。

 

……今タイポして「OHP」ってなったけど、今時の子どもってOHPって知ってるのかなあ?

まあそんなどうでもいい話はさておき。

 

これを果たして文字化けと言っていいのかどうなのか分からんけど。

PHPでクエリ飛ばしてMySQLからデータを引っ張ってくるとき、英数字は問題ないんだけど日本語だけなぜか「????」とか表記される。イミフ。

最初は「文字化け→エンコードか!?」とか思ってエンコードに関していろいろ情報を探る。

これに関してはググれば山のように情報が出てくるので問題ない。

 

結論から言うと、エンコードに関しては全然問題はなかった。

 

ので、別の手段を講ずる。

紆余曲折あって、『mysqlで日本語が"???(クエスチョンマーク)"になってまう。』で解決策が載っていたので、これを用いることに。

 

対策は非常に簡単で、データベース接続時に、クエリで
と送ってやればいいらしい。

これを記述するタイミングは接続直後がベストらしく、自分の場合
という感じで書いたらうまくいった。

(PHP5.5.0から"mysql_query"や"mysql_connect"などが非推奨になってしまった。メンドい仕方ないので、PDOクラスを利用した書き方にしてあります) 

 

しかし、どうしてこうも日本語環境周りはメンd……なんでもないですはい。