この文字(0x81)は、エンコーディングwindows-31jにマップできません
と出てしまったひとの参考になれば。
環境
Windows 10 64bit
使用エディタ VS code
JDK ver 14.0.1
状況
VS code のターミナルにて javaのソースコードをjavacにてコンパイルしようと思ったら文字化けしてしまってコンパイルできない。
このときの対策として、文字コードを指定してコンパイルをしてあげる方法があったのでメモをする。
原因
原因は、javaソースファイル(~.java)の読み込み時に正しく文字がエンコーディングできていなかったためである。エディタとして今回はVS code,エンコーディングをUTF-8を用いてる。しかし、VS codeのターミナルでは Windows 10のpower shellを介して実行をするため、シェルになにも考えずに手入力して実行をするとこういったエラーが起きるようだ。もちろん設定しだいでなんとかなるが、とりあえず設定を変えずに動かす場合の対策を考えてみた。
対策
方法は$ javac の -encoding オプションを用いる。
UTF-8で書いてるひとは以下のように実行。Shit-JISで書いてるひとはUTF-8の部分を変えてください。
$javac -encoding UTF-8 [ファイル名.java]
これで、コンパイルが通ればおそらくちゃんと実行できてます。
コメント