【发布时间】:2017-03-21 02:27:39
【问题描述】:
符号是这个:
它有时会出现在我们文件系统上的文件夹名称的末尾。把文件夹放在那里的人发誓他们看不到它。我认为它可能是由我们的内部资产构建工具之一生成的,也许是为了响应从 Google 文档电子表格中复制的内容?
抱歉,这太含糊了...
【问题讨论】:
标签: unicode symbols line-endings
符号是这个:
它有时会出现在我们文件系统上的文件夹名称的末尾。把文件夹放在那里的人发誓他们看不到它。我认为它可能是由我们的内部资产构建工具之一生成的,也许是为了响应从 Google 文档电子表格中复制的内容?
抱歉,这太含糊了...
【问题讨论】:
标签: unicode symbols line-endings
这是位于U+E000–U+F8FF 的private use area 中的Unicode 字符U+F028。这意味着它的用途是特定于应用程序的。您可能是对的,某些工具会生成此字符并且在复制时无法删除/替换该字符。 Wikipedia 列出了一些 vendor usage examples,但我怀疑这个列表会有多大帮助。
为了找出问题的原因,我首先会尝试询问创建文件夹的用户他们使用哪些操作系统以及他们从哪些应用程序中复制了文本。如果您认为是您的某个构建工具造成的,您可以尝试在这些工具的所有日志文件以及这些工具使用的任何数据库中搜索该字符。
对于标题中的实际问题,这个字符没有定义的符号。一些应用程序显示一个默认符号,而其他应用程序可能只是忽略它而不显示任何内容。
【讨论】:
看起来罪魁祸首可能是 Windows CHKDSK(类似于 fsck)……
https://github.com/dw/scratch/blob/master/ntfs-3g-chkdsk-unicode-fix.py→
# … Windows
# CHKDSK, which will immediately replace all the invalid characters with
# Unicode ordinals in the private use plane.
【讨论】:
如果您在 FAT 文件系统上的文件夹名称中添加尾随空格,OS X 将使用此符号。
为什么?因为 Windows 上的文件夹名称中禁止有尾随空格。由于 OS X 通常允许尾随空格,因此它在某种程度上将此行为扩展到 FAT 驱动器。私有使用的 unicode 字符被用作同时保持文件系统健全的一种手段。
当您在 Mac 上时,您几乎看不到额外的字符,因为它在那里呈现为空间。只有将驱动器移至 Windows 或 Linux 后,奇怪的 unicode 字符才会显示为不可打印。
【讨论】: