@huyi1985

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

日本語フォントによる「\」が「¥」に見える現象について:学習時の混乱は?

外国人として少し気になっているのですが、0x5C(\=バックスラッシュ)が日本語フォントで「¥」と表示されることは、日本の方がコンピュータを学ぶ際に混乱の原因にならないのでしょうか?

たとえば、cmdではパスの区切り文字はメモリ上で0x5Cのバックスラッシュ(\)であり、0xA5の円記号ではないのに、「MS ゴシック」などのフォントでは「¥」に見えてしまいます。

19.07.2025_21.32.09_REC.png

一方、Cascadia Mono などのモダンなフォントでは、正しく\と表示されます。

具体的に違和感を感じる例としては:

  • 英語の教科書や記事では「\」と書かれているのに、日本語の OS では「¥」と表示される
  • Windows 11 の Terminal では \ に見えるのに、管理者権限の cmd ではまた「¥」に戻る
  • \n のようなエスケープシーケンスが「¥n」に見えて、一瞬戸惑う
  • Perl や PHP、シェルなど $ を多用する言語では、「¥」と「$」が並ぶことで、2種類の通貨記号が同時に画面に現れること

また、日本語には「〇〇と書いて××と読む」という言語習慣がありますが、それは「¥」と書いて「\」と理解するのにも役立っているのでしょうか?

こうした視覚上の違いで混乱したり、違和感を覚えたご経験があれば、ぜひ教えていただけると嬉しいです。

1 likes

これは歴史的な背景があります。
簡潔に述べると昔の日本語版Windowsにバックスラッシュという概念が無かった(薄かった)ためです。

「¥」と書いて「\」と理解する

私は理解と言うよりも、自然な慣れ、感覚、当たり前にあるようなものだと思っています(日本人固有スキル?)。国外の方が日本語版Windowsに触れると違和感があるのは当然ですし正常な反応だと思います。
ただし今の若い方がこの事情を多く知っているかは疑問です。その方が違和感を感じたならその理由を探すでしょう。

私の場合、プログラミング・Web関連に携わることがあり、時代はShift_JISからUTF-8に変わる瞬間にいましたから、この事情は以前から知っていました。なので仕組みや事情を知っていたので混乱はしませんでした。


私がヘタに語るより以下の方がまだ詳しく書かれているような気はします。

2Like

外国人として少し気になっているのですが、0x5C(\=バックスラッシュ)が日本語フォントで「¥」と表示されることは、日本の方がコンピュータを学ぶ際に混乱の原因にならないのでしょうか?

それは日本人としては常識の範囲なのです。

1Like

10代、20代はみんな混乱していますよ笑
こういう初歩的な議題の時に矢継ぎ早に、それは常識ですからみんな知っていますだとか、言い出す人がいますけど、プログラマーの悪評にしかならないのでやめていただきたい。(これは私個人の意見です)

5Like

10代、20代はみんな混乱していますよ笑

それは「10代、20代」のプログラマが無知と言ってるの同じ。失礼です

0Like

混乱しますし、未だ違和感は拭えません
“慣れ”以外ではどうにもならないでしょうね
だって実際に違うんですから、誰しも最初はバックスラッシュの出し方を必死に検索するはずです
確かに言われるがまま呑み込むスキルは日本人なら高いでしょうが、違和感そのものは国籍に関係ないでしょう

しかしそれ以上に初学者にとって混乱の元なのは\の採用が少数派だという背景です
Windowsでも今時は/に対応しており、Linuxともなればむしろ\を認識しません
¥の違和感よりもこちらの混乱の方が大きいでしょう

0Like

バックスラッシュがエンマークになることを無知と蔑んでいるのはあなたですよ?つまり、失礼なのはあなたです。
自分の世界をアタリマエだと思うのは痛々しいですよ(笑)
10代がどんな環境で育っているのか知らないのは無知じゃないという訳ですかね😂
プログラマーの悪評を広める活動ってお金でも貰えるんですか🤣

0Like

一般的な日本の初学者は基礎学習時に日本語環境を前提とした教本を使用するので、「円マーク」を「バックスラッシュ」として認識します。
そのため問題になることはほとんどありません。

レアケースとして聞くのは、「Macのバックスラッシュ問題」です。Macユーザではないので詳細は知らないのですが、キーボード上の「円マーク」がデフォルトでは0xA5なので切り替えが必要らしいです。

ただ、教本による基礎学習を終えた後、各種オンラインドキュメントを読み始める段階では度々混乱を誘発するようです。

個人的経験でいえば、PHPの名前空間で一瞬ハマりました。バックスラッシュを「円マーク」として認識しているので、ドキュメント上の「バックスラッシュ」を「スラッシュ」と誤読ししばらく試行錯誤したのを覚えています^^;

とはいえ、どの問題も一度理解してしまえばその相互変換にストレスを感じることはほぼありません。

余談(愚痴):
「\」が「¥」に見えることではなく、「¥」に0x5Cと0xA5の二つがあることが問題になるケースは散見されます。こちらは実務でドハマりすることがあります。

3Like

@utsumi2024 さん>

バックスラッシュがエンマークになることを無知と蔑んでいるのはあなたですよ?つまり、失礼なのはあなたです。

「10代、20代はみんな混乱していますよ」と言うあなたがが失礼だと自覚しましょう。

少なくともソフト開発の経験がある 10代、20代ならエスケープシーケンスは知っていて当然。C とか Python とかそれにバックスラッシュを使うケースが多い。C なら Hello World! を出力するのに、

main()
{
    printf("hello world!\n");
{

というコードが紹介されていて、注記で「バックスラッシュは日本語環境のキーボードやディスプレイでは円記号で表されることが多い」とか書いてあるのを見たことがあるのでは?

という訳で、プログラムの学び初めにバックスラッシュと円記号が同じであることを認識する人は多いはずです。

1Like

パソコンいじり始めて40年以上です。

TL;DR
バックスラッシュと¥記号は同じものでフォントによって表示が変わるのだと認識していて染みついているので、特に混乱したり不便に思ったりはしていません。


¥記号に頻繁に出会うようになったのは、たぶんMS-DOSのパスの区切りからで、0x5Cが海外ではバックスラッシュ(ヽ)に割り当てられていることとか、Unixでは区切りはスラッシュだけど差別化するためにバックスラッシュにされたとか、なるほどそうなんだと理解してました。日本語のMS-DOSやWindowsで作業している限りでは、¥記号とバックスラッシュが混在することもなかったので、あまり意識することはなく、混乱することもありませんでした。

しばらくしてLinuxを触るようになって、バックスラッシュを目にするようになりましたが、知識はあってそういうものだと理解していたし、混在することもなかったので、特に困ることもありませんでした。
ちなみに、¥記号よりバックスラッシュの方がが見た目がすっきりしているので、可能であれば、バックスラッシュで表示されるようにしています。

最近Unicodeが普及してきて、¥記号が他のコードにも割り当てらたため混乱するケースがあるのを知って、それはやっかいだなと思っています。ただ、実際にそういうケースに遭遇したことはありません。


英語の教科書や記事では「\」と書かれているのに、日本語の OS では「¥」と表示される

そういうものだと思ってます。

Windows 11 の Terminal では \ に見えるのに、管理者権限の cmd ではまた「¥」に戻る

特に違和感は無いし、Terminalでバックスラッシュに見えるのは逆にすっきりして好ましいと思っています。

\n のようなエスケープシーケンスが「¥n」に見えて、一瞬戸惑う

エスケープ記号も最初から円記号なので戸惑わないし違和感もありません。また Linux歴もだいぶ長いので、バックスラッシュでも違和感はありません。

Perl や PHP、シェルなど $ を多用する言語では、「¥」と「$」が並ぶことで、2種類の通貨記号が同時に画面に現れること

これは、何が問題なのかわからない。
どちらもただの記号なので、混在することで、それに戸惑ったり違和感を覚えたりすることはありません。

また、日本語には「〇〇と書いて××と読む」という言語習慣がありますが、それは「¥」と書いて「\」と理解するのにも役立っているのでしょうか?

¥記号を書いてバックスラッシュになる理解していません。
¥記号もバックスラッシュもそのまま理解していて、変換しているわけではありません。


図らずも、上の段落で質問に回答しようとしたときに、バックスラッシュを貼り付けたらエディタ上での表示が¥記号になるという問題に遭遇しました。

そう言われてみれば、この問題はよく起きますね。 面倒だなとは思いますが、特に混乱はしませんね。そういうことが起きるのは、バックスラッシュと¥記号が混在している場合であり、それは、その話題を扱っているせいで、通常は混在することはない(=同じ文字コードなのでどちらか片方しか現れない)ので、特に問題にはなりませんね。

1Like

私は、比較的最初に読んだ、どこかの本のどこかにあったASCII表の

\(日本だと¥)

のような文をすんなり受け入れたので違和感はあんまりありません。
しかしcowsayのようなASCIIアートだと違和感はありますね笑

どのような年代であろうと、誰だって最初は戸惑いますし、違和感はあります。
それらを乗り越えてこそのエンジニアなのではないでしょうか。

1Like

マルチポスト先で事例が紹介されてるように、実際混乱してるコンピューター/プログラミング入門者は少なくないやろ。
Unicode普及前(だいたい2000年代以前)からプログラミングしてるようなジジババは、文字コードの歴史を知ってるから混乱しないというだけで、日本人にとって常識なので混乱しないなんてことはないよ。
もうちょい若いおじおばも、忘れてるだけやと思うで。

0Like

外国人として少し気になっているのですが、0x5C(\=バックスラッシュ)が日本語フォントで「¥」と表示されることは、日本の方がコンピュータを学ぶ際に混乱の原因にならないのでしょうか?

最初は少し戸惑いましたが「混乱」という程ではなかったです。中国でも¥は使われますが中国ではどうなんでしょうね?

1Like

記憶が定かではないですが,そもそもバックスラッシュという文字が存在すること自体,それに遭遇するまで知らなかったような気がします.

なんでしょうね,このバックスラッシュってやつ,自然言語(:コンピュータ以外の場面)でも普通に使われるものなんですかね?……っていうのを私は知りませんが,少なくとも日本で日本語使って生きている範囲ではまず遭遇しない文字なんじゃないかな,という気がします.

なので,日本人にとってはバックスラッシュに初遭遇した際には「謎の記号」みたいな感じなので,まぁそこで「これは何なの?」ってちょいと調べるとかの必要は生じるでしょうが,そこで「フォント次第でどうのこうのいう話で,要するに,円マークで良いらしい」ってなって終わる程度の話な気がするので,「混乱」と呼ぶほどの大げさな事柄でもなさそうかな,と思います.

コンピュータに触れてると→ある日自然と遭遇して→「ふーん,そうなんだすごいね」って知る,という程度の話かなと.

英語の教科書や記事では「\」と書かれているのに、日本語の OS では「¥」と表示される

大多数の日本人は,順序が「バックスラッシュを知る → 英語の記事を見る」になると思うので,そこで困ることは無いんじゃないかな.


どうでもいい話ですが,自分の目の前のキーボードにわざわざ両方が存在しているという事実に今気づきました.(どっちのキーでも 0x5C なんだけど)

2Like

韓国だと \ のコードポイントに の標準フォントがある とは聞きますね。

1Like

@megchandesu 中国語版の Windows を使用している場合でも、0x5C の文字は「\」として表示されます。

パスの区切り文字やエスケープシーケンスなど、この文字が使われる場合では、キーボード上に印字された「\」キーを押すと(ほとんどのフォントでは)画面にも同じく「\」が表示され、英語の教科書や技術文書と同じように見えます。

例えば cmdのプログラムの場合、中国語 Windows 環境では「新宋体」というフォントが使用されており、このフォントの 0x5C に割り当てられているのはバックスラッシュ「\」です。

WechatIMG3.jpg

ただし、入力時に表示される記号は、中文入力方式(IME)がオンになっているかどうかにも影響されます。正確には、IME が「中文記号モード(全角記号モード)」かどうかによって異なります。中文 IME を起動すると、通常このモードになります。

IME を起動していない場合は、キーボードに印字されている記号がそのまま入力され、画面にも同様に表示されます。しかし、IME をオンにすると、一部の記号がより大きく幅広い全角記号に変換されてしまいます。

WechatIMG1.jpg

例えば、「人民元」の通貨記号「¥」を入力したい場合は、中文入力モードで Shift+4(「4」の上に「$」が書かれたキー)を押す必要があります。このとき入力されるのは U+FFE5(全角YEN記号)であり、U+00A5(標準的なYEN記号)ではありません。

バックスラッシュ「\」はそれほど混乱を招きませんが、C言語などで文末に使うセミコロン「;」や、シェルで使うパイプ「|」などを誤って全角(;|)で入力してしまうと、見た目では気付きにくいため、意図した動作にならず、原因を突き止めるのに多くの時間を浪費してしまうことがあります。

2Like

Your answer might help someone💌