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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

Q&A

解決済

1回答

856閲覧

Django + MySQL で作成した Web アプリケーションに日本語を登録しようとしたところ "???" と表示されます。

nerianighthawk

総合スコア544

Amazon RDS

Amazon RDSは、米アマゾン社が提供しているRDBMSサービス。クラウド上でのリレーショナルデータベースの構築および運用が可能です。MySQL/PostgreSQL/Oracle/SQL Serverのインストールを容易にすることができます。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

0グッド

0クリップ

投稿2021/02/15 07:13

前提・実現したいこと

Django + MySQL で Web アプリケーションを作成しています。
モデルからマイグレーションして、日本語を登録しようとしたところ"???"の表記になってしまいます。
rdsの管理画面からパラメータグループを変更し、インスタンスを再起動しました。

発生している問題・エラーメッセージ

select で確認したところ以下の通りです。
Django の管理画面から確認しても同様の結果です。
id 3と4に関しては日本語を入力した結果になります。

+----+--------+ | id | name | +----+--------+ | 1 | abc | | 2 | def | | 3 | ?? | | 4 | ?? | +----+--------+

該当のソースコード

DB の character 指定の問題だと思っているので、関係あると思っている各種設定を下記に貼ります。

mysql> status; -------------- Server characterset: utf8mb4 Db characterset: utf8mb4 Client characterset: utf8mb4 Conn. characterset: utf8mb4 --------------
mysql> show variables like 'char%'; +--------------------------+-----------------------------------------------------------------+ | 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 | /rdsdbbin/oscar-5.6.mysql_aurora.1.22.2.0.790.0/share/charsets/ | +--------------------------+-----------------------------------------------------------------+ 8 rows in set (0.00 sec)

試したこと

mysql コマンドから UPDATE コマンドで日本語のデータを入れようとしても "???" として表示されました。

mysql> UPDATE table_name SET name = "あいう" WHERE id = 3; Query OK, 0 rows affected, 1 warning (0.01 sec) Rows matched: 1 Changed: 0 Warnings: 1 Warning (Code 1366): Incorrect string value: '\xE5\xB9\xB8\xE6\xB0\xB4' for column 'name' at row 1 mysql> SELECT * FROM table_name; +----+--------+ | id | name | +----+--------+ | 1 | housui | | 2 | kousui | | 3 | ?? | | 4 | ?? | +----+--------+ 4 rows in set (0.01 sec)

補足情報(FW/ツールのバージョンなど)

バージョン情報は以下の通りです。
Django: 3.1.6
mysql: 8.0.23

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

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

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

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

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

m.ts10806

2021/02/15 07:21

MySQLの情報は何でコマンド打ってますか?
nerianighthawk

2021/02/15 08:23

ご質問いただきありがとうございます。 何でコマンドを打っているか?ということですが、 ツールとしては Mac のターミナルで入力しております。 やり方ということでしたら、mysqlコマンドからホストネーム指定で RDS の環境に入っています。 補足事項としてですが、 ローカルで立てた mysql サーバでは日本語の入力が可能でした。
m.ts10806

2021/02/15 08:24

念の為、コマンドからではなく、別のクライアントGUIツールからもご確認を。 登録時の処理に問題がないとも言い切れないので、登録処理のコードとプログラムファイルの文字コードもご提示を。
guest

回答1

0

自己解決

DBを作り直したところ、日本語が登録できるようになりました。
ひとまず解決とします。

投稿2021/02/15 23:52

nerianighthawk

総合スコア544

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問