CSVと文字コード UTF-8のBOMを付けても文字コードは変わらない:4つのバイト列で確認
UTF-8のBOMはEF BB BFの3バイトです。Shift_JISにこの3バイトを追加してもUTF-8にはなりません。同じCSVから4つのバイト列を作り、読み取り結果を比較します。
CSVと文字コード
CSVと文字コード
文字の検証