• 解決済 toruns

    (@toruns)


    ユーザー情報のメンテナンスのためのプログラムを開発中に行き詰まりました。

    現在、サイトの文字コードもDBもUTF-8で指定してあるのですが、phpmyadminなどでwp_usersテーブルを確認するとdisplay_nameの日本語の部分が全て?になっています。
    もちろん、「ユーザーの編集画面」では、文字化けすることなく表示されています。

    しかし、新規のデータ、又は既存データを直接DB上で編集すると、phpmyadminなどでは正常に表示されていても、「ユーザーの編集画面」では文字化けした状態になってしまいます。

    システム内で「sanitize_text_field」「wp_filter_kses」「_wp_specialchars」などでいろんな変換を行っているようなのですが、理解ができないため、、、DB側もしくは、外部プログラムを使ってDBを直接編集する場合に、display_nameをどのように処理すれば文字化けせずに、DBに登録することができるのでしょうか?
    よろしくお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック投稿者 toruns

    (@toruns)

    進展がありましたので追記します。

    問題を訂正させていただくことになって恐縮ですが、phpmyadminでは、正常に表示され、webminで上記の現象が発生していました。

    このため、MySQL自体の設定を疑い、

    mysql> SHOW 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 | /usr/share/mysql/charsets/ |
    +————————–+—————————-+

    となっています。
    どうやらコレが原因ではないかと検証をしています。

    トピック投稿者 toruns

    (@toruns)

    自己レスです。

    mysql_set_charset(‘utf8’);

    をソース内に加えたところ文字化けが解消しました。

    「mysql 文字化け utf-8」でかなりの情報が検索できました。

2件の返信を表示中 - 1 - 2件目 (全2件中)

トピック「DBに登録されているdisplay_nameなどの文字コードについて」には新たに返信することはできません。