違いは「番号の保存方法」
UTF-8はUnicodeのコードポイントを1〜4バイトで表す方式です。ASCII文字は1バイト、日本語の多くは3バイトになります。Shift_JISは日本語向けに広く使われてきた別の符号化方式で、同じ「あ」でも異なるバイト列になります。
UTF-8
あ → E3 81 82Shift_JIS
あ → 82 A0文字化けする理由
UTF-8で保存したデータをShift_JISとして読むと、バイトの区切りと対応する文字を誤って解釈します。ファイルを開くアプリで「文字コード」や「エンコーディング」を確認しましょう。
迷ったとき
新しいWebサイトやデータ交換では、特別な指定がなければUTF-8を選ぶのが一般的です。既存の業務システムや古いCSVではShift_JIS系が指定されることがあります。