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

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

ただいまの
回答率

87.60%

wordpress.comからのデータ移行で文字化けが発生

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 1,207

score 18

初めまして、いつも拝見させていただいています。
今回初めてteratailを利用させていただきます。宜しくお願い致します。

前提・実現したいこと

wordpress.com(wordpress.orgではなく)からローカル環境にサイトのコピーをしています。
wordpress.comの環境が一般的なwordpressインストール型の環境ではないということで、
基本的にmysql(またはphpMyAdmin)からダイレクトでバックアップが取れないという制約があります。

従って、今回はAll-in-One WP Migrationという移行プラグインを使用してローカル環境に移行を試みているのですが、
どうも移行先のwordpressでバックアップデータ(〇〇.wpress)をインポートすると、
MySQLのデータの中の日本語のみが???というように文字情報の欠落が起こってしまいます。

色々と調査をしたところ、
移管元と移管先のDB(またはテーブル)で文字コードが異なることで、
文字マップに該当の文字を表現するコードがなければ
???というものになってしまうということでざっくりと理解をしましたが、
どう文字コードを調整してもインポートをすると???となってしまいます。

総当たりで文字コードを1つずつ設定して行くには非常に効率が悪いので、
一応インポート直後(???の状態)のテーブルで、各テーブルの照合順序がlatin1_swedish_ciとなっているのをヒントに、
データベースを作成するタイミングで、データベースのキャラクタセットをlatin1_swedish_ciに設定した上で、
データベースを作成し、再度バックアップデータ(〇〇.wpress)をインポートしてみたのですが、
相変わらず???の状態です。

この場合どのように解決(???を日本語に)すれば宜しいでしょうか。

環境

OS :  macOS Mojave
mamp pro : mysql(もしかしたら中身はmariadbかもです)
php : 7.2.14
MySQL : 5.7.25
wordpress.comからはバックアップが取れないため、All-in-One WP Migrationを使用
All-in-One WP Migrationのバックアップデータの拡張子は.wpress
標準のエクスポートでは、simple membershipの情報などが移行できないようです。

各所設定

※現在は上記の環境かなので、あえてlatin1にしています。

mysql> show global variables like "%char%";
+--------------------------+--------------------------------------------+
| Variable_name            | Value                                      |
+--------------------------+--------------------------------------------+
| character_set_client     | latin1                                     |
| character_set_connection | latin1                                     |
| character_set_database   | latin1                                     |
| character_set_filesystem | binary                                     |
| character_set_results    | latin1                                     |
| character_set_server     | latin1                                     |
| character_set_system     | utf8                                       |
| character_sets_dir       | /Applications/MAMP/Library/share/charsets/ |
+--------------------------+--------------------------------------------+
8 rows in set (0.00 sec)
mysql> SHOW TABLE STATUS FROM 〇〇;
+-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| Name                        | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time         | Update_time         | Check_time | Collation         | Checksum | Create_options | Comment |
+-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
| wp_commentmeta              | InnoDB |      10 | Dynamic    |    2 |           8192 |       16384 |               0 |        32768 |         0 |             34 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_comments                 | InnoDB |      10 | Dynamic    |    0 |              0 |       16384 |               0 |        81920 |         0 |              7 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_links                    | InnoDB |      10 | Dynamic    |   10 |           1638 |       16384 |               0 |        16384 |         0 |             11 | 2019-03-20 17:58:25 | 2019-03-20 17:58:25 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_options                  | InnoDB |      10 | Dynamic    |  423 |            697 |      294912 |               0 |        16384 |         0 |          52980 | 2019-03-20 17:58:25 | 2019-03-20 18:00:42 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_postmeta                 | InnoDB |      10 | Dynamic    | 4267 |            372 |     1589248 |               0 |       409600 |   4194304 |           5385 | 2019-03-20 17:58:25 | 2019-03-20 17:58:27 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_posts                    | InnoDB |      10 | Dynamic    |  927 |           2845 |     2637824 |               0 |       344064 |   4194304 |           1098 | 2019-03-20 17:58:27 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_swpm_members_tbl         | InnoDB |      10 | Dynamic    |  136 |            361 |       49152 |               0 |            0 |         0 |            170 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_swpm_membership_meta_tbl | InnoDB |      10 | Dynamic    |    0 |              0 |       16384 |               0 |        16384 |         0 |              2 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_swpm_membership_tbl      | InnoDB |      10 | Dynamic    |    3 |           5461 |       16384 |               0 |            0 |         0 |              4 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_swpm_payments_tbl        | InnoDB |      10 | Dynamic    |  151 |            325 |       49152 |               0 |            0 |         0 |            158 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_term_relationships       | InnoDB |      10 | Dynamic    |  547 |             89 |       49152 |               0 |        16384 |         0 |           NULL | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_term_taxonomy            | InnoDB |      10 | Dynamic    |  133 |            123 |       16384 |               0 |        32768 |         0 |            134 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_termmeta                 | InnoDB |      10 | Dynamic    |    0 |              0 |       16384 |               0 |        32768 |         0 |              1 | 2019-03-20 17:58:28 | NULL                | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_terms                    | InnoDB |      10 | Dynamic    |  133 |            369 |       49152 |               0 |        32768 |         0 |           1488 | 2019-03-20 17:58:28 | 2019-03-20 17:58:28 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_usermeta                 | InnoDB |      10 | Dynamic    | 2421 |             94 |      229376 |               0 |       229376 |         0 |           3338 | 2019-03-20 17:58:28 | 2019-03-20 17:58:29 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_users                    | InnoDB |      10 | Dynamic    |  133 |            369 |       49152 |               0 |        49152 |         0 |            164 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_wpbackitup_job_control   | InnoDB |      10 | Dynamic    |    2 |           8192 |       16384 |               0 |            0 |         0 |           NULL | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_wpbackitup_job_items     | InnoDB |      10 | Dynamic    |  727 |            202 |      147456 |               0 |            0 |         0 |            728 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_wpbackitup_job_tasks     | InnoDB |      10 | Dynamic    |   26 |            630 |       16384 |               0 |            0 |         0 |             27 | 2019-03-20 17:58:29 | 2019-03-20 17:58:29 | NULL       | latin1_swedish_ci |     NULL |                |         |
| wp_wpmm_subscribers         | InnoDB |      10 | Dynamic    |    0 |              0 |       16384 |               0 |            0 |         0 |              1 | 2019-03-20 17:58:29 | NULL                | NULL       | utf8_general_ci   |     NULL |                |         |
+-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-------------------+----------+----------------+---------+
20 rows in set (0.01 sec)
# インポート結果
mysql> select post_title from wp_posts limit 5;
+------------+
| post_title |
+------------+
| ????       |
| ??????     |
| Home       |
| ????       |
| ?????????  |
+------------+
5 rows in set (0.00 sec)

もし、上記以外で回答に必要な情報があれば
お気軽にお申し付けください。
また、試したい提案等もあればおっしゃっていただければこちらで試してみます。

お忙しいところ恐縮ですが、ご教授いただけるよう何卒宜しくお願い致します。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+1

latin1でしかデータベースを作成できない理由があるのかどうかわかりませんが、
charset類をutf8mb4ってのでデータベースを作り直さない限り、
なんどデータベースを取り込み直してもlatin1じゃ文字化けしますよ。

使用しているプラグインとかよく知らずに回答をつけていますが、
データベースインポート用SQLファイルを作成する類であれば、
それを直接編集してデータベース作成箇所でのエンコーディングをutf8mb4と書き換えれば
解決しそうな気がします。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/03/21 09:03 編集

    早速の回答ありがとうございます。
    以下の文を質問文に追記で記載しようと思ったのですが、
    弾かれてしまったので、かなり読みづらいかもしれませんが、こちらに記載いたします。

    他に試したことを記載します。
    上記で「※現在は上記の環境かなので、あえてlatin1にしています。」とありますが、
    latin1にした意図としては、①デフォルトの環境が下記のようにUTF-8(utf8の方)となっており、latin1にする前段階でutf8の環境下でも同様に???という文字化けが発生してしまっているという事と、②1度下記の環境下でインポートした直後のデータは、文字コードがlatin1系になっており、mysqldump --default-character-set=utf8でdumpしたsqlファイル内のlatin1をutf8に修正した修正後のデータをインポートしても、改善が見られませんでした。
    ①、②のように環境をutf8に合わせたとしても改善が見られなかったので、逆にインポートデータに環境を合わせるという事でlatin1にしておりました。

    mysql> show variables like "%char%";
    +--------------------------+--------------------------------------------+
    | Variable_name | Value |
    +--------------------------+--------------------------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | utf8 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /Applications/MAMP/Library/share/charsets/ |
    +--------------------------+--------------------------------------------+
    8 rows in set (0.00 sec)


    ちなみに、latin1にする前のテーブル、カラムのキャラクタセットは順に下記のようになっております。
    ```
    # テーブル
    mysql> show table status from dbName;
    +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
    | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |
    +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
    | wp_commentmeta | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 32768 | 0 | 34 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_comments | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 81920 | 0 | 7 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_links | InnoDB | 10 | Dynamic | 10 | 1638 | 16384 | 0 | 16384 | 0 | 11 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_options | InnoDB | 10 | Dynamic | 426 | 461 | 196608 | 0 | 16384 | 0 | 52986 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_postmeta | InnoDB | 10 | Dynamic | 4135 | 384 | 1589248 | 0 | 409600 | 4194304 | 5385 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_posts | InnoDB | 10 | Dynamic | 931 | 2833 | 2637824 | 0 | 344064 | 4194304 | 1098 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_swpm_members_tbl | InnoDB | 10 | Dynamic | 136 | 361 | 49152 | 0 | 0 | 0 | 170 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_swpm_membership_meta_tbl | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 16384 | 0 | 2 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_swpm_membership_tbl | InnoDB | 10 | Dynamic | 3 | 5461 | 16384 | 0 | 0 | 0 | 4 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_swpm_payments_tbl | InnoDB | 10 | Dynamic | 151 | 325 | 49152 | 0 | 0 | 0 | 158 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_term_relationships | InnoDB | 10 | Dynamic | 547 | 89 | 49152 | 0 | 16384 | 0 | NULL | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_term_taxonomy | InnoDB | 10 | Dynamic | 133 | 123 | 16384 | 0 | 32768 | 0 | 134 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_termmeta | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 32768 | 0 | 1 | 2019-03-21 08:48:15 | NULL | NULL | utf8_general_ci | NULL | | |
    | wp_terms | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 32768 | 0 | 1488 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_usermeta | InnoDB | 10 | Dynamic | 2421 | 94 | 229376 | 0 | 229376 | 0 | 3338 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_users | InnoDB | 10 | Dynamic | 133 | 369 | 49152 | 0 | 49152 | 0 | 164 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_wpbackitup_job_control | InnoDB | 10 | Dynamic | 2 | 8192 | 16384 | 0 | 0 | 0 | NULL | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_wpbackitup_job_items | InnoDB | 10 | Dynamic | 727 | 202 | 147456 | 0 | 0 | 0 | 728 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_wpbackitup_job_tasks | InnoDB | 10 | Dynamic | 26 | 630 | 16384 | 0 | 0 | 0 | 27 | 2019-03-21 08:48:15 | 2019-03-21 08:48:15 | NULL | utf8_general_ci | NULL | | |
    | wp_wpmm_subscribers | InnoDB | 10 | Dynamic | 0 | 0 | 16384 | 0 | 0 | 0 | 1 | 2019-03-21 08:48:15 | NULL | NULL | utf8_general_ci | NULL | | |
    +-----------------------------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------+
    20 rows in set (0.00 sec)
    ```
    ```
    # カラム
    mysql> show full columns from wp_options;
    +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
    | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
    +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
    | option_id | bigint(20) unsigned | NULL | NO | PRI | NULL | auto_increment | select,insert,update,references | |
    | option_name | varchar(191) | utf8_general_ci | NO | UNI | | | select,insert,update,references | |
    | option_value | longtext | utf8_general_ci | NO | | NULL | | select,insert,update,references | |
    | autoload | varchar(20) | utf8_general_ci | NO | | yes | | select,insert,update,references | |
    +--------------+---------------------+-----------------+------+-----+---------+----------------+---------------------------------+---------+
    4 rows in set (0.00 sec)
    ```

    キャンセル

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

  • ただいまの回答率 87.60%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る