日本語を含む実用上すべての文字は Unicode 表記できます。例を示します。
Unicode 表記ではすべての文字を対等に扱います。そうではなく文字の使用頻度に応じてバイト数を変動させることによって、文字の集合である文章全体のバイト数を小さくできます。Shift_JIS は日本語の文字に小さなバイト数の符号を対応させています。UTF-8 は Web などで一般的な符号化方式です。ファイルに保存された文字は何らかの符号化方式でエンコーディングされています。これを ASCII 文字の範囲外についてその符号化方式でデコードして Unicode 表記に変換するコマンドが native2ascii です。JDK に含まれています。
ori.txt (UTF-8, 改行コードは DOS)
あ
ABCDE
日本語
デコーディングするためのコマンド実行例
$ native2ascii -encoding UTF-8 ori.txt ascii.txt
ascii.txt
\u3042
ABCDE
\u65e5\u672c\u8a9e
これを再度 Shift_JIS, UTF-8 でエンコーディングしてみます。
$ native2ascii -reverse -encoding Shift_JIS ascii.txt
$ native2ascii -reverse -encoding UTF-8 ascii.txt
あ
ABCDE
日本語
ターミナルのエンコーディング設定によって少なくともどちらかが文字化けするはずです。