1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語:プラグラマーにとって厄介な言語

Last updated at Posted at 2024-11-29

ある一日

「すみません、プログラムが動きません」
「(……?)こちらでは再現できない状況です。どういう状況でしょうか?」
「なんか、動かないんですよね」
「決められたパラメーターじゃないと動かないんですよね。パラメーターを教えてください。調べてみます」
「えーっと、apple、でしたっけ。ちゃんと入れているはずなんです。あれ、3回目は上手くいきました」
「これこれ、こうです」

双方ともに、「Appleと入力してください」「Appleとちゃんと入力したはずなんです」という主張です。

結論から言うと、これは全角(full-width)文字と半角(half-width)文字の違いでした。

つまり、プログラムは「Apple.png」を受け付けてくれるけど、「Apple.png」を受け付けてはくれなかった、ということです。3回目は上手くいった、というのは、3回目はたまたま半角で入力していたのでしょう。そう、無意識のうちに……。
(普通の人は、自分が今、半角で入力したのか、全角で入力したのか、深く考えませんよね。)

英語には、全角/半角の概念はないらしい

英語には、そもそも、半角/全角という概念がないそうです。

つまり、「 (ホワイトスペース)」を埋め込んで、プログラムが動かなくなるのは、日本人あるあるのようです。これをアメリカ人のプログラマーに言わせてはいけない。知らんかった。羨ましい話です。このお豆腐「 」に苦しめられない人たちがいるなんて……。

Shift-JISとUTF-8

Shift-JISとUTF-8の違いは、ときどき問題を引き起こします。

Shift-JISはJISというくらい、日本語に特化したファイルフォーマットですが、UTF-8のほうがグローバルでユニバースでエレガントで、問題がないです。しかしながら、しかしながら、ExcelはだいたいデフォルトのファイルがShift-JISで保存されていて、日本のクライアントから飛んでくるファイルはだいたいShift-JISになっています。
(メモ帳のデフォルトは、Windows 10 May 2019 Updateから、UTF-8になりました。
Excelもいずれ、そうならないだろうか……。)

カタカナの「ソ」が含まれるパスで何か起こった場合、この文字コードの違いが原因である可能性があります。

ASCIIとUTF-8の話なので、ちょっと本題とはズレるのですが、これも面白い話です。

中華フォント現象

StardewValleyとか、キーボード入力で日本語を入力するのはちょっと怖いなーと思っています。ときどきゲームがぶっ壊れるからです。

海外製のゲームは、わざわざアルファベットで名前を入力することがある……のですが、GooseGooseDockでは信念を曲げて、ハンドルネームを入れています。パッと読める、パッと認識できるのは日本語だからです。
(半分くらいの人は、UIの英語を見た瞬間に逃げる)

しかし、中華フォント現象(日本語に対して中国語のフォントファミリーが採用されてしまう現象)が起きていて、見た目は、あまり美しくはありません。

日本語というのは、プログラマーにとっては、結構、難儀なものです。

1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?