通常,我的程序会创建带有扩展拉丁语的文件,中日韩或文件名中的阿拉伯字符没有问题并且符合输入数据。
我印象中只有正式命名的 ASCII 字符(:
、\
、*
、 ...)不能用于文件名,所以我对它们进行了清理。但最近我发现字符U+10FC0C
(
答案1
请参阅以下限制文件和目录命名约定在微软文档中:
- 使用当前代码页中的任意字符作为名称,包括 Unicode 字符和扩展字符集
(128–255) 中的字符,但以下字符除外:
以下保留字符:
- <(小于)
- >(大于)
- : (冒号)
- “(双引号)
- /(正斜杠)
- \(反斜杠)
- | (垂直条或管道)
- ?(问号)
- *(星号)
整数值零,有时称为 ASCII空值特点。
整数表示形式在 1 到 31 范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
目标文件系统不允许的任何其他字符。
请阅读以下文章:私人使用区域。
这意味着您要求的字符 U+10FC0C 根据定义不能被视为 Unicode 本身的标准字符。因此,不能用作 NTFS 中的文件名。
在上面的答案中它与最新的限制有关:
目标文件系统不允许的任何其他字符。