Counterize IIの検索された文字列の文字化けを直す(wp_Counterize_Keywordsへの操作、そして成功!)

サーバにログインし、それからさらにMySQLにもログインします。

$ mysql -u root -pmysql> use bootablog;
mysql> show tables;
+————————–+
| Tables_in_bootablog      |
+————————–+
| wp_Counterize            |
| wp_Counterize_Keywords   |
| wp_Counterize_Pages      |
| wp_Counterize_Referers   |
| wp_Counterize_UserAgents |
| wp_commentmeta           |
| wp_comments              |
| wp_links                 |
| wp_options               |
| wp_postmeta              |
| wp_posts                 |
| wp_term_relationships    |
| wp_term_taxonomy         |
| wp_terms                 |
| wp_usermeta              |
| wp_users                 |
+————————–+
16 rows in set (0.00 sec)

その中に、wp_Counterize_Keywordsというテーブルがあることが確認できます。WordPressのダッシュボードからたどることができるCounterize IIのキーワードは、多分ここから引っ張ってきているのでしょう。
とすれば、まずはこのデータベース(テーブル)に含まれている内容を確認する必要がありそうです。

mysql> select * from bootablog.wp_Counterize_Keywords;
〜略〜
|3490 | rvf ??
|   0 |
|3491 | rvf ??
|   1 |
|3492 |??????? ??
|   0 |
|3493 | ??????? ??
|   1 |
+———–+——–+——-+
3493 rows in set (0.02 sec)

となっており、要するにこの時点で文字化けしていることが確認できました。ということは、これが直ればダッシュボードでも正しく見えるようになるのではないかと。

そこでMySQLの既存のデータベース(テーブル)の文字コードを変換するにはどうしたらよいかをGoogle先生に尋ねると、ココココココが。

どちらを参考にしてもよいのですが、要するに既にあるテーブルの文字コード変換は、

mysql> alter table wp_Counterize_Keywords convert to character set utf8;

という命令でいけるとのこと。
ちなみに文字コードはデータベース単位で設定することになるので(だからbootablogに対して文字コードをutf8にしてきたワケです)、テーブル単位で文字コードの指定はできないそうです。
しかし、テーブルで使用される文字コードの確認は行うことができるので、wp_Counterize_Keywordsの文字コードを確認してみました。

mysql> show create table wp_Counterize_Keywords \G;
*************************** 1. row ***************************
Table: wp_Counterize_Keywords
Create Table: CREATE TABLE `wp_Counterize_Keywords` (
`keywordID` int(11) NOT NULL auto_increment,
`keyword` varchar(255) NOT NULL,
`count` int(11) NOT NULL default ‘1’,
PRIMARY KEY  (`keywordID`),
KEY `keyword` (`keyword`)
) ENGINE=MyISAM AUTO_INCREMENT=3494 DEFAULT CHARSET=utf8
1 row in set (0.02 sec)

うーん、どうやらutf8になっているようですね。
既に文字化けしている「?」は、文字コードを変換したところでもうどうしようもないのでしょうか?
ということは、逆にこれから日本語で検索されるものに関しては、ちゃんと日本語でキーワードが表示される、ということなのでしょうか?

考えていても始まりません。こんな時は、実験あるのみです。

とはいっても、メインマシンのCentOSは現在WordPressにログインしてますから、このまま検索エンジンで検索しても除外ユーザに該当してしまうため記録が残りません。かといって、いちいちログイン、ログアウトを何度もするのは面倒です。

そこで、XenでWindows Vistaを立ち上げ、IE9.0でネットに接続することにしました。これなら別マシンからアクセスすることになるので、仮想環境上のブラウザでWordPressにログインしていなければ全く第三者的にアクセスできます。
ただ、検索エンジンによってキーワードが登録されたりされなかったりするようで、ログを見る限りではYahoo!Japanならばキーワードが残るようでした。
そこで、このBLOGがヒットしそうな日本語も織り交ぜたキーワードでYahoo!Japanにて検索開始、当該BLOGにアクセスします。

そのうえで、ダッシュボードからCounterize IIの画面を確認すると・・・。

abc

注目!!
「キーワード」の部分で、ちゃんと日本語が表示されたじゃないですか!!ということは・・・。

はやる気持ちを抑えつつmysqlのbootablogデータベースのwp_Counterize_Keywordsテーブルも確認してみると。

mysql> select * from bootablog.wp_Counterize_Keywords;
〜略〜
|  3493 | ??????? ??
|     1 |
|  3494 | rvf 鎌倉 ツーリング
|     1 |
+———–+————-+——-+
3494 rows in set (0.02 sec)

新しいキーワードは、ちゃんと日本語になってました!

一つ残念なのは、今回行ったwp_Counterize_Keywordsへの操作が本当に必要だったのかの確認が不十分だったことでしょうか。
既存のテーブルをutf8にしても、既に存在している行の値は変わらなかったわけで、としたら、bootablogの文字コードを変更するだけで新しいキーワードは日本語として記録されたのではないのか、という検証を行わないままwp_Counterize_Keywordsへの操作を行ってしまいましたから・・・。

しかし、何はともあれ検索キーワードは日本語で記録されることになりました!
しばらくはこれで様子を見て、「検索されたキーワード」や「most searched keywords today」も日本語に置き換わっていくか確認していきます(もちろんそのためには日本語で検索してもらってヒットし、アクセスしてもらわなければならないわけですが)・・・(^-^;;

boota

いろんなモノに、いろんな意味で、ヲタ。なのかも?

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)