為什麼檔案系統保留字元不使用 Unicode?

為什麼檔案系統保留字元不使用 Unicode?

我真的很想使用“?”這樣的字元。在 Windows 中為檔案名稱。我明白為什麼它們被保留,但為什麼它們沒有,或者它們是否會通過使用看起來相同但(顯然)具有不同 Unicode 代碼的 unicode 字元來規避這個問題?

我認為完全有可能,但如果不可能,為什麼?

答案1

我認為他們之所以不這樣做是因為有可能引起混亂。如果您有一個看起來像“?”的字符但有不同的 unicode 代碼 - 你如何區分?

你會如何向某人解釋? 「你的檔案名稱中不能有問號,但你可以有一個看起來像問號但不是問號的東西,要輸入它,你只需要使用這個 5 -組合鍵。」?

更好(在我看來)完全排除它們並避免錯誤。

答案2

檔案名稱中不允許使用的字元有:

  • <(少於)
  • >(比...更棒)
  • :(冒號)
  • "(雙引號)
  • /(正斜線)
  • \(反斜線)
  • |(豎條或豎管)
  • ?(問號)
  • *(星號)

根據微軟命名約定

你指的是這個嗎?

原因可能是因為在舊 shell 中處理包含這些字符的文件太困難了command.com,例如?也意味著任何一個字符,*也意味著任何文件等。

他們沒有教導每個人如何處理這些特殊情況,而是禁止這樣做,這使得編寫腳本變得更容易。

這些字元不會有 Unicode 等效項,即使有等效項,也仍然無法解決該問題:現有的 ASCII?仍然*必須用作通配符,否則每個人都必須重新編寫腳本。

答案3

您可以使用下面的 Unicode,它看起來與原始的 Unicode 類似,沒有風險

它們作為視窗名稱是有效的:

注意:統一碼表讓您透過描述(如羅馬)、實際字符搜尋字符,並提供其他相關字符(看起來相同)作為參考

請找到下面的有效檔案名稱(複製並貼上來嘗試;在 Windows 7 下使用 Windows 資源管理器工作並正確顯示,抱歉無法新增螢幕截圖)。您會注意到 Windows 下的外觀與瀏覽器內的外觀不同(字型的變更)

unicode 一 ☀ ⁠ » ։∖ ‡〵 ÷╲ ‽ ⁇ ¿ ‰ ¢ π ∞ « ≈.txt


幾個參考文獻

  1. www.theasciicode.com.ar/extended-ascii-code/copyright-symbol-ascii-code-184.html
  2. http://www.theworldofstuff.com/characters/
  3. http://unicode-table.com/en/#00A9
  4. http://www.tedmontgomery.com/tutorial/altchrc-a.html
  5. http://unicode-table.com/en/#enlined-alphanumerics
  6. https://stackoverflow.com/questions/8086375/what-c​​haracter-to-use-to-put-an-item-at-the-end-of-an-alphabetic-list

注意:Windows 自 1980 年起就符合 Posix 標準(根據維基百科),因此它確實符合 posix RFC,包括指定檔案名稱的 RFC堆疊交換的答案提供有關 RFC 的更廣泛上下文以及檔案名稱中允許使用哪些字符

答案4

現在您可以自己使用這些字元。但我假設您的意思是讓作業系統自動在 ASCII 問號和類似的字元(如 ﹖ ( SMALL QUESTION MARK- UFE56))之間進行音譯。我真的不認為這是令人滿意的,特別是因為 Linux 和其他檔案名稱的唯一無效字元是斜線 ( /) 和 null (ASCII 0),很容易接受這些字元。

延伸閱讀:

相關內容