woodman0224
@woodman0224 (林 正)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

Windowsでの¥と\

Windowsの\の挙動

基本的にWindowsではパスの区切りとして¥を使用すると思うのですが、
Macのように (バックスラッシュ)が適応されるケースと遭遇しました。

Windowsでは¥を使うと認識していたので、なぜ\が使えるのかわかりません。
環境の違いなのでしょうが、理由を知りたいです。

0

4Answer

Windowsでは¥を使うと認識していたので、なぜ\が使えるのかわかりません。環境の違いなのでしょうが、理由を知りたいです。

フォントの違いで見え方が違うだけで文字コードは同じです。

Windows でパスの区切りに使う \ は ASCII コードで言うと 0x5C、Unicode で言うと U+005C ですが、フォントによって以下のように見え方が違います。

Meiryo

mairyo.jpg

Arial

arial.jpg

4Like

MS-DOSの時代からWindowsに至るまでパスの区切り文字はバックスラッシュ(ASCIIコード 5C)ですが、日本向けの製品はこのASCIIコード 5C を円記号として表示してきたという、日本の環境の特殊事情があります。ある文字コードがどのような字形で表示されるかはフォントによりますから、日本向け製品においても、使用するフォントによって円記号が表示される場合もあればバックスラッシュの形で表示される場合もあるということです。

3Like

Comments

  1. @woodman0224

    Questioner

    回答ありがとうございます!
    日本向け製品と海外向け製品の違いが起源なのですね。腑に落ちました!

どちらも、asciiコードは0x5cで同じ認識です。
見え方の差は、使用するフォントやロケールの差ですかね?

2Like

Comments

  1. ちなみにですが、英語版(おそらく日本語版以外の)Windowsは普通に\(バックスラッシュ)です。
    また、MacやLinux系OSのパス区切りは/(スラッシュ)です。

  2. @woodman0224

    Questioner

    回答ありがとうございます!
    言われれば確かに英語版の方のが\でした!

そもそもが逆で,Windowsファイルシステムにおけるディレクトリ区切り文字はバックスラッシュU+5Cが使われており,Windowsにおける標準フォントにおいてバックスラッシュU+5Cは円記号として表示されるようになっています.
理由としては7bitがまかり通っていた当時の環境で円記号を表現するためと思われますがJIS規格において5Cに円記号を割り当てていたことがあり,この兼ね合いで今日に至るまでWindows環境でJISキーボードで円記号を押した場合U+5Cが入力されます.

ついでなので補記しますが,Unicodeにおいて円記号はU+A0に割り当てられました.Mac環境などで円記号キーを押した場合,U+A0が入力されるケースがしばしばあります.日本語のプログラミング教本で円記号を使っている場合,暗黙的にバックスラッシュU+5Cを指すものと読み替え,スラッシュの右隣のキーを押すようにしてください.

2Like

Your answer might help someone💌