1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「・ソ」とは?原因と対処法について

1
Posted at

「・ソ」との出会い

ある時、作成したバッチファイルを実行したら以下のような現象に見舞われました。

件のバッチファイル(test.bat)

echo Akeome!

cmd で実行してみると...

C:\Users\XXX>C:\Users\XXX\OneDrive\Desktop\test.bat

C:\Users\XXX>・ソecho Akeome!
'・ソecho' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

C:\Users\XXX>

「・ソ」?実際のバッチファイルには書かれていないはずなのに...

こちらについて調査し、原因が分かったので備忘録として残します。

「・ソ」の原因

こちら、バッチファイルが「UTF-8(BOM付)」で作成されていたことが原因でした。

image.png

サクラエディタで開いたら右下に書いてあるやつです。文字コードてやつですね。

試しにこちらを「UTF-8」で保存しなおし実行したところ、正常に実行できました。

image.png

C:\Users\XXX>C:\Users\XXX\OneDrive\Desktop\test2.bat

C:\Users\XXX>echo Akeome!
Akeome!

C:\Users\XXX>

おまけ:BOMってなに

恥ずかしながら、今回の現象に出くわすまで私、「BOM」が何なのか理解してませんでした...
ついでにBOMについても調べてみたので、あわせて書いておきます。

BOMとは

一部のテキストファイルに付与される、文字コード識別子のことです。数バイトの特殊なデータがテキストファイルに付与されます。
Byte Order Mark の頭文字をとって BOM と呼ばれるようです。爆弾だと思ってた

一部WindowsアプリではBOMが無いと正常に文字コードをアプリ側が判断できず、文字化けしてしまうなどのことがあるようですが、最近のアプリではBOMがなくても正常に判断できるようになっているものが多いようです。

「・ソ」を見てみよう

BOMがテキストファイルに付与されるデータだとわかったので、実際にどんなデータが付与されているのか見てみます。

先ほどのバッチファイルをBOM付、BOMなしそれぞれバイナリエディタで見てみると、

  • BOM付のほう
    image.png

  • BOMなしのほう
    image.png

BOM付のほうには先頭に「EFBBBF」と付与されていることがわかります。これが、UTF-8をBOM付で保存したときに付与されるBOMになります。

こいつが「・ソ」だったわけですね。

まとめ

BOMには気を付けよう。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?