【发布时间】:2015-05-15 14:06:48
【问题描述】:
我遇到了一个文件,它的文件名报告为풜〣
然后,SQL Server 无法将其解释为 XML,因为它在 XML v1.0 和 v1.1 中都被称为特别无效的字符。
当我dircmd 中的目录时,我得到???? 作为文件名,这似乎是四个字符。
我是通过 PowerShell 的 Get-ChildItem 获得任何文件名的。
这里还有其他事情吗?像 '' (&#xFFFF) 这样的 Unicode 非字符如何进入文件名,或者这与未安装的语言包或其他什么有关?
【问题讨论】:
-
非字符
U+FFFF是 NTFS 文件名中的合法“字符”,但不是一个好主意。这可能是某个时候编码失败的结果。 -
cmd 的
dir命令应该输出 UTF-16 文本,但管道默认编码为 OEM 代码页(例如 CP437),它将用问号替换U+FFFF。要让 cmd 改用 UTF-16,请将来自cmd /U /c dir的输出通过管道传输。
标签: xml windows powershell unicode ntfs