このエントリをはてなブックマークに追加このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをFC2ブックマークに追加このエントリをNifty Clipに追加このエントリをPOOKMARK. Airlinesに追加このエントリをBuzzurl(バザール)に追加このエントリをChoixに追加このエントリをnewsingに追加

壊れた UTF-8 ストリームを検証する

頭の痛い壊れた UTF-8 の検証問題ですが、ネットでこんなコードを見つけました。

<?php
function check($check)
{
  $sjis = mb_convert_encoding($check, "SJIS-win", "UTF-8");
  $utf8 = mb_convert_encoding($sjis , "UTF-8"   , "SJIS-win");

  return ($check === $utf8);
}
?>

なんてわかりやすいんでしょうか。しかし、正しく機能するのか謎です。ちょっと試してみた限りではかなりの精度で誤りを検出できるようです。

実は、現在開発中のシステムがいろんな言語を扱う予定があるため UNICODE を使いたいのです。発想が非日本人っぽくて自己嫌悪してしまいそうですが、引き続き書籍などからヒントを得てみようと思います。

何か良い方法がわかり次第レポートいたします。

back to top