派遣君が書いたプログラムの、sjisのファイルを出力する箇所で、


fwrite($fp, sjisToUtf8($buffer));
と書いてあったからおかしいと思ったんだ。
調べたらこんな関数があった。


// **************************************************
// 文字コードをコンバート
// **************************************************
function eucToUtf8($str) {
return mb_convert_encoding($str ,"EUC-JP" ,"UTF-8");
}
function utf8ToEuc($str) {
return mb_convert_encoding($str ,"UTF-8" ,"EUC-JP");
}

function utf8ToSjis($str) {
return mb_convert_encoding($str ,"UTF-8" ,"SJIS");
}
function sjisToUtf8($str) {
return mb_convert_encoding($str ,"SJIS" ,"UTF-8");
}

phpのマニュアルによると


string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding ] )
なので

  • eucToUtf8($str) は $str をUTF-8からEUC-JPに変換する
  • utf8ToEuc($str) は$strをEUC-JPからUTF-8に変換する
  • utf8ToSjis($str)は $Str を SJISからUTF-8に変換する
  • sjisToUtf8($str) は$strをUTF-8からSJISに変換する

らしい。


ありえん。