続々 PHP CSV出力 (nkf 使用)



やっと解決したと思ったら、今度は機種依存文字の
丸囲みの1が文字化けするとクレームが・・・


mb_convert_encoding($value,'SJIS','UTF-8');

?に変換されてしまう。

iconv("utf-8","sjis",$value);

機種依存文字以降の文字が消えてしまう。


・・・やっぱりnkfに頼るしかないか。

ということで、phpからnkfを使用する方法を調べていると
コチラの方が実践されていました。

http://djlab.sakura.ne.jp/mydiary/?p=130


参考にさせていただき、

//UTF-8からSJISへ変換
function u2s($value){
        $nkfpath = "/usr/bin/nkf";
        $str = '"'.mb_ereg_replace("\"", '\"', $value).'"';
        $command = popen("echo -n $str | $nkfpath -s","r");
        $result = "";
        
        while (!feof($command)) {
                $result .= fgets($command);
        }
        pclose($command);
        return $result;
}


という関数を使用することで回避できました。




もどる