- カタチグラフィックスのBlog – Katachigfxの日記と制作メモ

09.04

UTF-8を強制的にSJISへ変換して表示する

Published 9月 4th, 2008 Posted in html・CSS 8 Comments »  

携帯サイトはShit_jisで作らなくてはならない。
じゃないと、文字化けしてしまう。
WordPressなどSJISではないシステム環境を使って携帯サイトを作る場合、ブチあたる問題だ。

そこで、最終的にブラウザで表示するタイミングでUTFもしくはEUCをSJISにしてしまう方法を教えてもらった。Thanks enworks!!!
※実際は、一度UTF(EUC)で書き出したものをキャッシュし、そのキャッシュをSJISにして表示する。そのため、ソースのcharsetにはSJISと表記されていない。

方法

テンプレートになるphpファイルの頭に、

<?php
header("Content-Type: text/html; charset=Shift_JIS");
ob_start();
?>

phpの最後に、

<?php
$out = ob_get_clean();
$out = mb_convert_kana($out, "rak", "UTF-8");
$out = mb_convert_encoding($out, "SJIS", "UTF-8");
echo $out;
?>

と表記。つまりこれらのphpで変換する部分を囲めばいいわけだ。

 

–制作メモ

コメントリスト

  1. サイノア さん:

    ありがとうございます!

    header.phpの先頭に前半、
    footer.phpの最後に後半を入れたところ、
    上手く動いてくれました。

    ずっと悩んでいたことが一発で解決です。
    助かりました。

  2. KGFX さん:

    お!それはよっかた!!
    文字コードには毎回悩まされます。

  3. 携帯用?簡易カレンダー | トリコシステムズ さん:

    [...] http://katachigfx.jp/katalog/2008/09/04/utf8-sjis/ [...]

  4. Koh さん:

    はじめまして。

    どうしようか困っていたところ辿り着きました。
    とても参考になりました。

    ありがとうございます。

  5. KGFX さん:

    どういたしまして。
    お役に立ててよかったよかった!

  6. Wordpressで任意の文字コードでページを出力する方法 | モンキーレンチ さん:

    [...] UTF-8を強制的にSJISへ変換して表示する テンプレートになるphpファイルの頭に、 [...]

  7. UTF-8を強制的にSJISへ変換して表示する | memo帳 さん:

    [...] UTF-8を強制的にSJISへ変換して表示するより。 This entry was posted in 未分類 by root_xyon. Bookmark the permalink. [...]

  8. クリスチャンルブタン さん:

    Katalog » Blog Archive » UTF-8を強制的にSJISへ変換して表示する

ご自由にどうぞ