XamppのMariaDBを使って、データベースを作り、テーブルの行を確認したいのですが、
文字化けしてしまいます。
XAMPP for WindowsというXAMPPについているshellで
以下の流れで実行しました。
#データベースを作ったときのコマンド MariaDB [(none)]> CREATE DATABASE selfphp3 CHARACTER SET utf8mb4; Query OK, 1 row affected (0.001 sec) #データベースなどの文字コードの確認 MariaDB [selfphp3]> show variables like'chara%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.001 sec) #テーブルの作成 MariaDB [selfphp3]> CREATE TABLE member ( -> id INT PRIMARY KEY AUTO_INCREMENT, -> nam VARCHAR(255) NOT NULL, -> sex CHAR(1) NOT NULL DEFAULT 'm', -> old INT NOT NULL,enter DATE NOT NULL, -> memo VARCHAR(255) DEFAULT NULL); Query OK, 0 rows affected (0.020 sec) #テーブルの確認 MariaDB [selfphp3]> SHOW FIELDS FROM member; +-------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+----------------+ | id | int(11) | NO | PRI | NULL | auto_increment | | nam | varchar(255) | NO | | NULL | | | sex | char(1) | NO | | m | | | old | int(11) | NO | | NULL | | | enter | date | NO | | NULL | | | memo | varchar(255) | YES | | NULL | | +-------+--------------+------+-----+---------+----------------+ #テーブルへ行の挿入 MariaDB [selfphp3]> INSERT INTO member VALUES -> (1,'山田太郎','m',20,'2021-04-01',NULL); Query OK, 1 row affected, 1 warning (0.030 sec) #行の確認 MariaDB [selfphp3]> SELECT * FROM member; +----+----------+-----+-----+------------+------+ | id | nam | sex | old | enter | memo | +----+----------+-----+-----+------------+------+ | 1 | ?R?c???Y | m | 20 | 2021-04-01 | NULL | +----+----------+-----+-----+------------+------+ 1 row in set (0.001 sec)
##試したこと
・DBの文字コードなどをutf8mb4にした。
・XAMPP for Windowsコマンドプロンプトの文字コードをutf-8に変えてみた。→改善せず。
・DBの文字コードをutf8に戻してみた。→文字化けが???になった。
#文字コードがutf8のデータベースselfphp2 #フィールドの確認 MariaDB [selfphp2]> SELECT * FROM member; +----+------+------+-----+------------+------+ | id | nam | sex | old | enter | memo | +----+------+------+-----+------------+------+ | 1 | ???? | ? | 20 | 2021-04-01 | NULL | +----+------+------+-----+------------+------+ 1 row in set (0.000 sec) #文字コードの確認 MariaDB [selfphp2]> SHOW VARIABLES LIKE 'chara%'; +--------------------------+--------------------------------+ | Variable_name | Value | +--------------------------+--------------------------------+ | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8 | | character_sets_dir | C:\xampp\mysql\share\charsets\ | +--------------------------+--------------------------------+ 8 rows in set (0.001 sec)
色々調べて試行錯誤しましたが、もう力尽きてしまいました。もうよくわからないです。どうかお助けください。
どうかご回答、ご教授よろしくお願い致します。
追記↓↓↓
以下追加で試したことです。
##phpMyAdmin
phpMyAdminから、mysqlクライアントで作ったテーブルを見ると、以下のように文字化けしていました。
しかし、phpMyAdminを使って作ったテーブルを見ると、以下のように文字化けしていませんでした。
##コマンド文で .txtに出力
教えていただいたコマンド文入力。
mysql -u root -p selfphputf8mb4 --execute="SELECT * from member" > result.txtすると
xamppフォルダにresult.txtファイルが作成されました。その中身を見ると、以下のように文字化けしてしまっていました。
id nam sex old enter memo 1 ???? m 20 2021-04-01 NULL
回答2件
あなたの回答
tips
プレビュー