質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

1845閲覧

ローカル環境にてDBからデータを取得すると日本語が「?」で表示される

inupoint

総合スコア25

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/09/29 14:44

編集2016/09/29 15:03

【事象】
ローカル環境でDBからデータ取得すると日本語が「?」で表示されてしまう。
イメージ説明
【詳細】
phpMyAdminコントロールブラウザ上で、sqlを送ると正しく表示されているが
PHPを使用し日本語文字列を取得し、ブラウザ上にechoすると「?」で表示される。
カラムの設定の「照合順序」でUTFを指定し、ブラウザでもUTF表示にしているが正しく表示されない。
HTMLのソース上も「?」となっている。
*すべての主要ブラウザで発生します。
*この事象は突然発生しました。以前は問題なく動いていました。少し厄介かもしれません…

「phpMyAdminコントロールブラウザ上のデータ取得時」
イメージ説明

「phpMyAdminコントロールブラウザ上のカラムの構造」
イメージ説明

【知りたいこと】
直接の原因。
つまりどこからデータが破損しているか教えていただきたい。
もしくは、DBからPHPでデータを取得する際のデバッグ方法。

【環境】
windows10
Xammp(mysql,apach)

【ソースコード】

<!doctype html> <html> <head> <meta charset="utf-8"> <meta name=viewport content="width=device-width, initial-scale=1"> <title>日本語出力テスト</title> </head> <?php //DBへの接続 $mysqli = new mysqli("127.0.0.1", "admin", "aaaa", "nihongotest"); // 接続状況チェック if(mysqli_connect_errno()){ die('接続失敗です。'.mysqli_connect_error()); } $sql = "SELECT moji FROM nihongo"; unset($db_data); if ($result = $mysqli->query($sql)) { while ($row = $result->fetch_assoc()) { $db_data[] = $row; } $result->free(); } echo '<table border="1">'; for($i=0;$i<count($db_data);$i++){ echo '<tr>'; echo '<td>' . $db_data[$i]['moji'] . '</td>'; echo '</tr>'; } echo '<td>' . count($db_data) . '<td>'; echo '</table>'; ?> </body> </html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matsu

2016/09/29 14:49

mysqlの設定かセットアップした方法って分かりますか?
inupoint

2016/09/29 15:00

mysqlの設定はアカウント追加してパスワードを設定した以外に何も変更していません。 セットアップはXAMMPを入れただけそのままです。 変更したファイルは「config.sample.inc.php」です。 これから追記しますが、今まで問題なく動いていたのに急にこの事象が発生しました。心情的にはかなり厄介な気がします…。
guest

回答2

0

ベストアンサー

現在値の確認:mysqli::character_set_name

設定:mysqli::set_charset

なおSET NAMESは使用禁止。

投稿2016/09/29 15:46

rana_kualu

総合スコア92

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inupoint

2016/09/30 13:22

ご回答いただきありがとうございました。確認させていただきます。
inupoint

2016/10/01 13:29

解決いたしました。ありがとうございました。
guest

0

XAMPPでの文字化けのデバグ方法としてこれが丁寧でした
http://buravo46.hatenablog.com/entry/2015/05/24/014503

PHPが原因で文字化けさせてしまうことがあるらしいです
http://d.hatena.ne.jp/satox/20120929/1348872362

投稿2016/09/29 15:19

matsu

総合スコア702

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

inupoint

2016/09/30 13:22

ご回答いただきありがとうございました。確認させていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問