LoginSignup
5
1

More than 3 years have passed since last update.

円マークとバックスラッシュの話

Last updated at Posted at 2020-07-04

新しく買ったPCにJDKをインストールし、環境変数を設定しました。そしてjavacコマンドを実行、、、

コマンド プロンプト 2020_07_04 10_41_14.png

うーん、環境変数の設定を再確認してみても間違いは見当たらない。
そこで文字コードの問題かもしれないと思い、入力したパスの文字コードを確認してみると
2020-07-04.png

どうやら円マークがU+005Cではなく、U+00A5になっていたようです。
そもそも私たちがWindowsの日本語キーボードで入力している円マークは実は円マークではなくバックスラッシュの仮の姿です。(正確にはあれこれすると円マークも入力できますが)
なぜこんなことが起きるのかというと、もともとのASCIIでバックスラッシュの文字が割り振られていた5Cという文字コードに日本では円マークを割り振り、JIS X 0201として規格化してしまったからです。
その後、全世界の文字コードを統一しようということで、Unicodeの規格が生まれ、バックスラッシュと円マークをきちんと区別して定義しようとなりました。その際、U+005Cにバックスラッシュが、U+00A5に円マークが割り当てられます。
しかし、WindowsがUnicode化するにあたって「U+005Cの文字コードはバックスラッシュだが、日本語の表示では円マークとする」としました。
そのため、日本語キーボードでバックスラッシュを入力すると、フォントによって画面上には円マークだったりバックスラッシュだったりが表示されたりします。(実際はバックスラッシュ)
つまり、私たちが普段日本語キーボードで入力するときは入力した文字が円マークで表示されていても、本当はバックスラッシュ(文字コードがU+005C)なのです。
しかし、どっかからコピペなどをしてきたときに本物の円マーク(文字コードがU+00A5)を持ってきてしまうことがあるのです。

さて、説明が長くなりましたが、今回の私の場合はパスをコピペして設定していたため、(なぜか)本物の円マークを使ってしまっていました。なので、きちんとキーボードから入力して環境変数を設定してあげると、
選択コマンド プロンプト 2020_07_04 10_45_52.png

このように無事、javacコマンドが実行できました。

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1