Excelで生成したCSVファイルをPHPで取り込む際、下記のようにSJISからUTF8の文字コード変換を行うが、その際「チルダ」や「全角ハイフン」が正しく認識されない事がある。
$str = mb_convert_encoding($str, mb_internal_encoding(), 'SJIS');
そのため、mb_convert_encoding()第3引数のfrom_encodingを下記のように指定してやる必要がある。
$str = mb_convert_encoding($str, mb_internal_encoding(), 'SJIS-WIN');
上記の通り文字コードを指定した結果、文字化けは綺麗に解消された。
nbsp;