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

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

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

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

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

データベース

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Q&A

解決済

1回答

402閲覧

mysql.conectorで日本語をinsertすると?になり文字化けしているのを直したい

ikaika3

総合スコア25

INSERT

INSERTとは、行を追加する、コンピュータのデータベース言語SQLにおけるデータ操作言語(DML)ステートメントの1つである

MySQL

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

データベース

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

0グッド

0クリップ

投稿2023/02/02 07:16

実現したいこと

文字化けせずにinsertしてデータベースにデータを入れたい。

前提

mysql.connectorでデータベースに接続できている。

質問

どこに問題があるのでしょうか。データベースやテーブルの設定だと思うのですが、どこの設定をどう変更したら日本語が文字化けしないで済むのでしょうか?テーブルやデータベースは作ったばかりなので、すぐ作り直すことができます。

1 import mysql.connector 2 3 conn = mysql.connector.connect( 4 host='', 5 port='', 6 user='', 7 password='', 8 database='', 9 10 charset='utf8mb4' 11 ) 12 13 14 cur = conn.cursor() 15 # コネクションが切れた時に再接続してくれるよう設定 16 conn.ping(reconnect=True) 17 18 # 接続できているかどうか確認 19 print(conn.is_connected()) 20 21 cur.execute("select version()") 22 print(cur.fetchone()) 23 24 insert_query = "INSERT INTO scraping (date ,name ,price ,url) values(%s ,%s ,%s ,%s)" 25 record = ("2022/02/02","ここが文字化けする所",1000,"http...") 26 cur.execute(insert_query, record) 27 28 conn.commit() 29 cur.close()

試したこと

charset='utf8mb4'と書いても駄目でした。

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

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

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

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

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

guest

回答1

0

自己解決

mariaDBを使っている。my.cnfのファイルを操作して、[mysqld]にcharacter-set-server=utf8mb4と書いた。[client]が書かれていなかったので、[mysqld_safe]の下に書いた。そこにdefault-character-set=utf8mb4書いて再起動してMySQLを起動してstatusを確認したらちゃんとutf8mb4変更されていた。pythonでコードを打ったら日本語で表示されるようになった。

投稿2023/02/02 11:05

ikaika3

総合スコア25

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

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

yambejp

2023/02/02 12:20

今更ですがpythonタグがあったほうが良かったですね
ikaika3

2023/02/02 14:57

そうでしたね。なんかコメントが一つも来てなかったので不思議でした。pythonタグがあったら答えてくれる人がいたかもしれませんね!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問