首页 > 解决方案 > 哪个字符集用于 Apache Jackrabbit Filevault FS 中的文件名编码?

问题描述

对于使用Jackrabbit FileVault在 Sling / AEM 中导出的内容包,有一些文件名转义规则指定文件名不允许使用的字符使用 URL 编码进行编码,但规则没有指定使用哪个字符集。似乎至少在我使用 MacOS 和 Linux ISO-8859-1 或可能使用 Windows-1252 或类似的系统上。总是这样吗?或者它只是正确可怕的系统默认字符集?谢谢!

标签: javaaemslingjackrabbit

解决方案


事实证明,Vault FS仅对字符<>|"/?: 进行url 转义,这些字符在 Windows 中作为文件名无效。所有其他字符都不会转义。因此,当您使用外部字符时很容易遇到麻烦US-ASCII 因为 ZIP 程序不支持 Unicode 和文件系统不支持 Unicode。因此,在 JCR 节点名中使用非 US-ASCII 字符来表示文件夹名称、页面、在内容中作为文件名出现的文件可能是不明智的包裹。 :-(

在解码方面:百分比编码的序列被直接解码为 Java char - 因此低于 256 的百分比编码的 unicode 字符可以工作,但没有办法对超出该范围的字符进行百分比编码。


推荐阅读