LoginSignup
14
6

More than 1 year has passed since last update.

WindowsとGitHubのファイル並び順の違いを、ASCII文字の範囲で具体的に確認した

Last updated at Posted at 2023-04-08

そのリポジトリがこちら

という感じ。

リポジトリの README は英語っぽい何かで書いたが、せっかくなのでそれと同じことをここ Qiita に日本語っぽい何かで書いておく。

ASCII 文字のファイル並び順調査

Windows と GitHub のファイル名における ASCII 文字の取り扱いを見てみる。

Windows

画像が縦長すぎるので縮小表示している。
クリックすれば別タブで原寸閲覧できるはず。

並び順

  • 数字部分は数値として並び替えられる。
  • 大文字・小文字は区別されない。

制約

  • 頭と尻のスペースは削除される。
  • 一部の記号が使えない。 " * / : < > ? \ |

Windows 10 Home 64-bit 22H2 にて確認。

実は他にも色々と制約があるが、ASCII 文字の並び順というテーマからは遠のくのでカットしている。
その辺は公式ドキュメントを見た方がずっと正確だろう。

GitHub

画像は invalid-on-Windows ブランチのもの。
やはり縦長すぎるので縮小表示している。クリックで原寸閲覧。

並び順

  • 数字も含め、全てが ASCII 順に並ぶ。

制約

GitHub の "Create new file" で新規ファイル名を入力する際、

  • 頭と尻のスペースは削除される。
  • スラッシュ / が使えない。
  • / 以外の Windows で使えない記号、つまり " * : < > ? \ | は、こちらでは使える
    しかし、リポジトリを Windows でクローンした場合に深刻なエラーを引き起こす恐れがある。
    error: invalid path ':a'
    error: invalid path '\a'
    error: unable to create file "a: Invalid argument
    error: unable to create file *a: Invalid argument
    error: unable to create file <a: Invalid argument
    error: unable to create file >a: Invalid argument
    error: unable to create file ?a: Invalid argument
    error: unable to create file |a: Invalid argument
    

Google Chrome 111.0 にて、2023 年 4 月 8 日確認。

なお、上記エラーはクローン時に --config core.protectNTFS=true とか --sparse とかのオプションで回避できる可能性が無くもない。
ただ、回避といっても「とりあえず他のファイルはチェックアウトできるようになる」程度のものであり、エラーの原因となったファイル自体は依然としてローカルに存在を許されないので、およそ根本解決と言えるものではなかろう。

他の OS

募集中。

聞きかじった限りだと、

  • Mac では /: が使えないらしい。
  • Unix では改行 \n すら使えるらしい。

おまけ

ASCII コード一覧

まぁ、一応。

  • 0x00~0x1F、0x7F (DEL)
    • 制御文字
  • 0x20~0x2F
    • スペース、!"#$%&'()*+,-./
  • 0x30~0x3F
    • 0~9、:;<=>?
  • 0x40~0x4F
    • @、A~O
  • 0x50~0x5F
    • P~Z、[\]^_
  • 0x60~0x6F
    • `、a~o
  • 0x70~0x7E
    • p~z、{|}~

ツイートはこちら

おわり

14
6
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
14
6