phpのmb_convert_encoding で「上」の文字が消える件

よく

という書き方をするかと思いますが、今回はこれでハマりました。

ハマったのは下記のコード

これを実行すると上という文字が消えます。

CSVのデータで単体で「上」と書いてあるセルをエンコードしようとした時に発生したもので、直感でエンコードだろうなとは思っていたのですが、案の定と言った所でした。

結論としては
下記で読み込めるようになるのですが、どうも気持ち悪い・・

第3引数は前から順に処理しているようなので、SJISを先にチェックさせればうまく通るわけですが、これによって逆に別の問題とかおきるんじゃないかと心配です。

とりあえず今回はSJIS確定(EXECL)のデータだったため、これで問題ないと思いますが、別のデータを取得する際は注意が必要だと思います。