モバイル版Googleアドセンス


仕事で作っているモバイルサイトに最近公開されたグーグルアドセンスを貼付けるということで、早速試してみた。

PC版と変わらなさそうで、ソースを貼付けるだけで広告が出るみたい。

で、はってみた。

すると、予想どおり文字化け。。。orz

うーんどうすればいいのだ。。。グーグルさんに聞いてみた。

すると、metaタグ、xmlヘッダー、HTTPレスポンスヘッダをShift_JISに設定すればいいとのこと。。。

やってみた

できねーーーー文字化けするーーー。

アドセンスを引っ張ってきているグーグルのPHPソースをみると、文字コードの指定はしていない(ソース自体はSJIS)

とういことは広告の文字コードが怪しい。みてみるとUTF-8!!!!ちょwwwwwそら文字化けするよ!!!

ということでob_start()を使ってこんな感じで強引にsmartyに埋め込んだ

{php}

function writer($text) {

$log = mb_convert_encoding($text, ‘EUC-JP’, ‘UTF-8’);

return $log;

}

ob_start(‘writer’);

/**

* アドセンスに必要なパラメータたちが並ぶ(アドセンスのページからコピペするだけなので省略しておきます)

*/

ob_end_flush();

{/php}

すると文字化けせずに表示。。。解決か?

ちなみにmb_convert_encodingの変換文字コードがEUC-JPになっていますが、このサイトはEthnaでつくっていて、基本ソースはEUC-JPそのごsmartyのoutput_filterでShift_JISに変換しているためです。

ここはサイトによって適当にかえてください。

広告張るたびにこれを書くのは面倒なのでsmartyのプラグイン関数でも作るか。。。もしくはそんなクラス。

ほかに何かいい方法あったら教えてください(もしかして他の人は文字化けすら起きていないのかなー)

eight-tree