プログラムを初めて組んでいるのですが、どうしてもデータベースを使いたいので
phpmyadminを使い、いろいろいじっているのですが、phpでデータベースの内容を
表示したときなのですが、どうしても文字化けが直りません。
(日本語だけ文字化けします)
いろいろググってみて以下で解決できそうなのですが、書いてある事がさっぱりわからず
どなたか分かりやすく解説してもらえませんでしょうか。
phpの文字コードはUTF8 データベース照合順序はutf8_general_ciにはして
あります。
最初の
「SET NAMES utf8」というクエリを発行。
というのはすでに意味がわかりません・・。
---------------------------------------------------------
【状況】
PHPからMySQLにデータ登録し、phpMyAdminで値を閲覧すると、日本語が文字化けしている。
ただし、その状態の値をPHPで取得・表示は普通にできる。
※PHP、HTMLの文字コードは「UTF8」。データベースの照合順序は「utf8_general_ci」
【対応】(以下の「xampp_path」はXAMPPのインストールパス)
データベース接続後に「SET NAMES utf8」というクエリを発行。
もしくはPHP5.2.2以降なら「mysql_set_charset(‘utf8′);」を実行しても良い。
「xampp_path/mysql/bin/my.ini」に以下の項目を追加・修正
[mysqld]
character_set_server=utf8
skip-character-set-client-handshake
[mysqldump]
default-character-set=utf8
[mysql]
default-character-set=utf8
「xampp_path/phpMyAdmin/config.inc.php」に以下の項目を追加・修正
$cfg['DefaultLang'] = 'ja-utf-8';
$cfg['DefaultCharset'] = 'ja-utf-8';
No.1ベストアンサー
- 回答日時:
xamppであればMySQL側を弄る必要はありません。
>もしくはPHP5.2.2以降なら「mysql_set_charset(‘utf8′);」を実行しても良い。
MySQL関数であればそうですが、すでにMySQL関数は「先がない」状態です。PDOやMySQLiを使ってください(マニュアルを読めば載っているのですが・・・)。
http://php.net/manual/ja/function.mysql-set-char …
PDOなどで接続するのであれば、接続文字列(DSN)でcharsetを指定します。
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
set namesを使うのはDSNで指定できない(phpが5.3.6未満のケース)だけですが、その場合でも
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'set names utf8);
$pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass, $options);
のように書いておくといいです(わざわざ$pdo->query('set names utf8')を書くのは避ける)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- MySQL 私の考えていることは ・mySQL ・PHP ・web制作 この三つのスキルがあれば実現しますか? 4 2023/08/19 02:48
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Visual Basic(VBA) Excel VBA カーソルを当てた際に表示される”4161”とは 1 2022/04/30 21:53
- PHP if(preg_match("/[^0-9]/",$gu_d)){意味を教えてください。 1 2022/05/06 05:37
- MySQL UPDATE my_items SET item_name '赤い,甘い,ケーキ' WHERE id 1 2023/01/03 09:52
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
phpMyAdminが使えない
-
onedrive にexcelファイルをア...
-
PEARのmimeDecodeでメール解析...
-
awsにApacheとPHPを入れて、何...
-
拡張子php画像をjpg画像等に変...
-
日本語ファイル名のアップロー...
-
さくらサーバーにて、phpからメ...
-
PHP フォルダ名やファイル名に0...
-
拡張子php画像をbmp画像等に変...
-
php、JDライブラリを用いて画像...
-
フォントの色を変えるには?
-
PHPでxmlをAPIに送信する方法(P...
-
edmaxで送信できなくなりました
-
深い階層のフォルダの作成や削...
-
PHPのsystem()でjava
-
文字化けについて
-
ローカル環境でのメール送信
-
phpにて、ipアドレスによる処理...
-
CFileDialogの最初のディレクト...
-
Smartyにて、文字検索
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
PHPのWARNINGをcatchするには
-
お名前comのPHPとmysqlの接...
-
localhostにリダイレクトされて...
-
エックスサーバーでのmysql設定...
-
lolipopでのmysql接続について
-
XOOPSインストール中に真っ白画...
-
データベースと連動したベーシ...
-
レンタルサーバでPHPからMySQL...
-
hpinfoにmysqlやmysqliが表示さ...
-
MySQLから送られて来たデータの...
-
ページ表示について
-
pwebmanagerにアクセスするとFa...
-
XserverでpearのDBでMySQLに接続
-
My SQL の文字化け
-
XOOPSのサーバアクセス設定につ...
-
勉強の甲斐あっていよいよPHPフ...
-
データベースに接続できない・...
-
onedrive にexcelファイルをア...
-
フォントの色を変えるには?
-
index.phpに入るには、どうすれ...
おすすめ情報