12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

phpMyAdminやMySQL Workbenchでselectした結果のblob型データが文字化けした時の対処法

Posted at

phpMyAdminやMySQL Workbenchでselect文を発行した際に、blob型やvarbinary型のデータが文字化けした経験はありませんか?
そのような場合には、以下のようなselect文を発行することで、データの文字化けを解消して結果を表示できるかもしれません。

MySQL Workbenchの場合で試す場合

MySQL Workbenchには、デフォルトでblob型やvarbinary型のデータの文字化けを解消した上でselect文の結果を表示してくれる機能が付いています。

Edit>preferences..>SQL Query>Treat BINARY/VARBINARY as nonbinary character string

この項目にチェック後にMySQL Workbenchを再起動することで有効化できます。
これだけで文字化けを解消できる場合もあるのですが、それでも無理な場合には、以下のselect文を試してみてください。
(以下のselect文を試す場合にも、上記設定は必須です)

文字化けを解消するためのSQL文

このSQL文はphpMyAdmin、MySQL Worckbenchどちらの場合でも文字化けを解消できました。

例)TestテーブルのNameフィールドの文字コードujisのデータが文字化けする場合

SQL
select cast(Name as char character set ujis) from Test

このselect文で文字化けを解消できることがあります。
現在のblob型又はvarbinary型のデータを、そのデータの本来の文字コードのchar型にキャストするという方法です。

文字化けを解消するためにネットで情報を探した際にstackoverflowの下記ページを参考にしました。
sql - How do I convert from BLOB to TEXT in Mysql?

ちなみに、特定のデータを検索した場合は以下のようになります。

例)「テスト」という文字列を含むデータを検索する場合、

SQL
select cast(Name as char character set ujis) from Test where cast(Name as char character set ujis) like '%テスト%'

同じようにselect文の結果が文字化けして困っている方は一度試してみてください。

12
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?