![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
xamppをインストールし、開発を行っております。
formでsubmitし、DBに登録すると文字化けを起こします。
MySQLは下記項目を追加しました。
C:\xampp\mysql\bin\my.ini
--------------------------------------------------
[client]
default-character-set = utf8
[mysqld]
skip-character-set-client-handshake
character_set_server=utf8
init-connect=SET NAMES utf8
(ここに default-character-set = utf8 を追加するとMySQLが起動しなくなります。)
[mysqldump]
default-character-set = utf8
[mysql]
default-character-set = utf8
php.iniは下記のように設定してあります。
php.ini
--------------------------------------------------
mbstring.detect_orderauto
mbstring.encoding_translationOff
mbstring.func_overload0
mbstring.http_inputUTF-8
mbstring.http_outputUTF-8
mbstring.http_output_conv_mimetypes^(text/|application/xhtml\+xml)
mbstring.internal_encodingUTF-8
mbstring.languageJapanese
mbstring.strict_detectionOff
mbstring.substitute_characterno value
日本語が正しく登録されていれば、表示は正しくされます。
おかしな部分、足りない部分等ありましたら、ご教示ください。
よろしくお願いいたします。
[環境]
MySQL:5.5.8
PHP:5.3.5
xampp:1.7.4
No.1ベストアンサー
- 回答日時:
まず、事実確認から。
問題になっているphpのアプリから、SQLを入力できる状態で、
show variables like '%char%'
で、実際に有効になっている文字コードを確認してください。
そして、latan1などになっているなら、MySQL接続後、
set names 文字コード
を最初に投げてみてください。
不確かな情報ではありますが、
init-connect=SET NAMES 文字コード
が、php等で権限がらみなのか「効かない」といった記事がたくさんあるようです。事実確認、要因などは不明ですが、まずは実際、質問者さんの環境がどういう状況になっているのか、これにより回避可能かを試す価値はあるでしょう。
>default-character-set = utf8 を追加するとMySQLが起動しなくなります
MySQL 5.1くらいから告知されていましたが、MySQL 5.5で、mysqldでのパラメタのキーワードが変更され
default-character-set は、廃止
↓
character_set_server が追加
されました。
一方、クライアントなどは従来通り
default-character-set
であり、紛らわしい状況になっています。
この回答への補足
chukenkenkouさん、ご回答ありがとうございます。
> show variables like '%char%'
を実行した結果、以下のようになりました。
character_set_clientutf8
character_set_connectionutf8
character_set_databaseutf8
character_set_filesystembinary
character_set_resultsutf8
character_set_serverutf8
character_set_systemutf8
character_sets_dirC:\xampp\mysql\share\charsets\
PHPのプログラムも全てutf-8で統一しております。
phpMyAdminでいろいろ確認したところ、DB全体の照合順序がlatin1_swedish_ciになっておりました。
個々のテーブルはutf8_unicode_ciになっていたのですが・・・
ありがとうございます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- MySQL XamppでインストールしたMySQLのフォルダのWinRARでのバックアップについて 1 2022/06/22 18:55
- MySQL php テーブルを作れない 2 2022/11/17 18:22
- PHP php テーブルが作成できない 1 2022/11/17 23:41
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- その他(プログラミング・Web制作) mariadbでのエラー 1 2022/11/15 12:31
- MySQL データベースの複製の仕方(mysql) 2 2023/05/30 18:24
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
さくらのレンタルサーバで文字...
-
接続ができません
-
ERROR 1054 (42S22) 原因不明です
-
VBAで変数内に保持された二次配...
-
mysql_close();の必要性について
-
データベースのフィールドのデ...
-
INT型は金額の型に使用するべき...
-
Usage: \\.<filename> | sourc...
-
SQLのVARCHARとVARCHAR2の違い
-
cseデータ閲覧時に文字化け
-
副問合せにLIKE文を使う方法は...
-
c言語でMySQLを利用するときの...
-
MYSQLサービス停止時にWindows...
-
ERROR 1045 (28000) (using pas...
-
ヌル値は記憶容量を必要としな...
-
「mysqld dead but subsys lock...
-
PEARでレコード数の取得
-
ユーザの権限及びユーザの削除...
-
パスワード入力を省略したい
-
mysqlが起動しません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php・Mysql Like文で日本語が使...
-
MYSQLで日本語が入力できない
-
MySQL 文字化けについて(PHP)
-
UTF-8にしても文字化けが直らない
-
MYSQLでタイ語
-
MAMP MySQl でコマンドプロンプ...
-
DB内の日本語データがPHPで取得...
-
mysqldumpでリストアし一部外字...
-
さくらのレンタルサーバで文字...
-
mysql>status で
-
xamppのMySQLの文字化け
-
「set names utf8;」という構文...
-
MySQL5.1の文字列サイズは文字...
-
MySQL(UTF-8)で ~ が文字化け...
-
設定が間違っていないのに文字...
-
phpmyadminで編集すると文字化...
-
xampp の mysql 文字化け
-
あと、MySQLの文字コードはutf8...
-
テーブルに日本語が登録できない
-
日本語をinsert時に文字化け
おすすめ情報