vba,如何压缩带有特殊字符的文件?

use*_*351 7 compression excel zip vba

压缩文件夹中的所有文件时出现错误

    '''''Create empty Zip File
    NewZip (FileNameZip)
    Set oApp = CreateObject("Shell.Application")
    '''''Copy the files to the compressed folder

    oApp.Namespace(FileNameZip).CopyHere oApp.Namespace(FolderName).items ''error here
Run Code Online (Sandbox Code Playgroud)

错误:c:...\Jørgen.doc 无法压缩,因为它包含无法在压缩文件夹中的字符,例如 ø。您应该重命名此文件或目录。

但是,如果我导航到该文件并手动将其复制到 zip 文件夹,它就没有问题。有没有办法在我的 vba 代码中解决这个错误

dav*_*lee 5

它已经是 MacOS 中的标准功能,但在 Windows 10 中您需要执行以下操作:

在开始菜单搜索框中输入“区域”

  1. 打开区域和语言控制面板

  2. 单击顶部的管理选项卡

  3. 在“非 Unicode 程序的语言”部分中,单击“更改系统区域设置...”。

  4. 选中“Beta:使用 Unicode UTF-8 获得全球语言支持”。

  5. 重新启动 Windows,然后重试。


pas*_*ute 0

使用 dotnetzip。它支持国际(unicode)文件名。

请参阅此处此问题的答案