0

我们有 :

  • 在 Linux 上运行的 webdav 服务器(java 应用程序)
  • Windows 7 上的客户端,使用 ms-word 2010

打开文件的 url 以文件名结尾,并在发送到 UI 之前以 UTF-8 编码:

server.com/path/my_file_name.doc

它与没有特殊字符的文件名完美配合,但具有丑陋的 url,如

server.com/path/En-tête de lettre + 大写字母 1 050 000 €.doc

,我们的服务器无法访问该文件。在堆栈跟踪中,我们可以看到服务器接收到的 url 是

server.com/path/En-tête de lettre + 大写字母 1 050 000 â?¬.doc

,但是 ms-word 显示的错误信息包含正确的 url,所以我认为原始 url 是正确的。

最后但同样重要的是:当服务器在 Windows 平台上运行时,它可以工作。

我想 ms-word 在将 url 传输到服务器之前对其进行重新编码,但我无法猜测如何对其进行解码。

欢迎大家提出建议^^

4

1 回答 1

1

我是http://milton.io (java webdav server lib) 的作者,我看到了一个问题,即 MS 客户端对某些 url 进行了不正确的编码,而 milton 对此有一些解决方法。您使用的是什么 webdav 框架/服务器?

但是,给出的示例看起来更像 mangling,正如 Marc B 所建议的那样。您的服务器可能正在以 UTF-8 输出 propfind 响应,但 Windows 将其解释为 win-1252。

因此,您应该查看响应标头并检查为响应提供的字符编码,并检查它是否与 PROPFIND 响应中使用的实际编码匹配。

请注意,早期版本的 milton 存在使用服务器默认编码但始终报告 UTF-8 的问题,因此在任何不使用 UTF-8 作为默认字符编码的服务器上都会出现此问题。

于 2013-03-03T19:29:36.413 回答