Windows でファイル名に「?」のような文字を使いたいです。これらの文字が予約されている理由は理解できますが、なぜ予約されていないのでしょうか。あるいは、見た目は同じでも (明らかに) Unicode コードが異なる Unicode 文字を使用することで、この問題を回避する予定はあるのでしょうか。
完全に可能だと思いますが、そうでないなら、なぜでしょうか?
答え1
そうでない理由は、混乱を招く可能性があるからだと思います。「?」のように見える文字があるが、Unicode コードが異なる場合、その違いをどうやって見分けるのでしょうか?
誰かにどう説明しますか? 「ファイル名に疑問符は使用できませんが、疑問符のように見えるが疑問符ではないものを入力するには、この 5 つのキーの組み合わせを使用するだけです。」?
(私の意見では)それらを完全に除外して間違いを避ける方が良いです。
答え2
ファイル名に使用できない文字は次のとおりです。
<
(未満)>
(より大きい):
(結腸)"
(二重引用符)/
(スラッシュ)\
(バックスラッシュ)|
(縦棒またはパイプ)?
(疑問符)*
(アスタリスク)
によるとMicrosoft 命名規則。
あなたが言及していたのはそれですか?
その理由は、おそらく、古いシェルでは、これらの文字を含むファイルを処理するのが難しすぎるためでしょうcommand.com
。たとえば、 は?
任意の 1 文字も意味し、 は*
任意のファイルも意味します。
こうした特殊なケースの処理方法を全員に教えるのではなく、それを禁止してスクリプトの作成を容易にしました。
これらの文字に相当する Unicode 文字はなく、同等の文字があったとしても、それでも問題は解決されません。既存の ASCII 文字?
は*
依然としてワイルドカードとして機能する必要があり、そうでない場合は、全員がスクリプトを書き直す必要があります。
答え3
リスクなしで、元のものと似ている次のUnicodeを使用できます。
これらは Windows 名として有効です:
- « (00AB は) の代わりに < (より小さい)
- » (ユー+00BB) の代わりに > (より大きい)
- ։ (0589 う+0589または÷(00F7 0 ...) または ‡ (2021年: (コロン) の代わりに ) を使用します
- 「(201C の) の代わりに " (二重引用符)
- ⁄ (2044年/ (スラッシュ) の代わりに )
- ∖ (2216 の) または \ (FF3C は) または 〵 (3035 の\ (バックスラッシュ) の代わりに ) を使用します
- ¦ (00A6 ...) の代わりに | (縦棒またはパイプ)
- ‽(203D は) ⁇ (2047年) ¿(00BF は? (疑問符) の代わりに ? ) を使用します
- ☀ (2600 文字) の代わりに * (アスタリスク)
注意:ユニコード表説明(ローマ字など)や実際の文字で文字を検索したり、関連する(同じように見える)他の文字を参照として提供したりできます。
有効なファイル名を以下に示してください (コピーして貼り付けて試してください。Windows 7 の Windows エクスプローラーで動作し、正しく表示されます。スクリーンショットを追加できないので申し訳ありません)。Windows ではブラウザ内と見た目が異なることに気付くでしょう (フォントが異なります)。
ユニコード 一 ☀ ¦ » ։∖ ‡〵 ÷╲ ‽ ⁇ ¿ ‰ ¢ π ∞ « ≈.txt
いくつかの参考文献
- www.theasciicode.com.ar/extended-ascii-code/copyright-symbol-ascii-code-184.html
- http://www.theworldofstuff.com/characters/
- http://unicode-table.com/en/#00A9
- http://www.tedmontgomery.com/tutorial/altchrc-a.html
- http://unicode-table.com/en/#enclosed-alphanumerics
- https://stackoverflow.com/questions/8086375/アルファベットリストの末尾に項目を配置するために使用する文字
注意:Windowsは1980年からPosixに準拠しています(Wikipediaによると)ので、ファイル名を指定するものを含むPosix RFCに準拠しています。スタックエクスチェンジでの回答RFC に関するより広いコンテキストとファイル名に使用できる文字について説明します。
答え4
これらの文字は、自分で使用できるようになりました。ただし、オペレーティング システムが、たとえば ASCII の疑問符と、それに似た ﹖ ( SMALL QUESTION MARK
- UFE56) を自動変換することを意味しているものと想定しています。Linux やその他のシステムでは、ファイル名に無効な文字はスラッシュ ( ) とヌル (ASCII 0) のみであるため、/
これらの文字は問題なく受け入れられるため、これは満足できるものではないと思います。
参考文献:
- Unix/Linux/POSIX ファイル名の修正: 制御文字(改行など)、先頭のダッシュ、その他の問題
- Wikipediaの記事ファイル名