在webdav协议期间使用microsoft word url编码问题

时间:2013-03-01 18:33:51

标签: java ms-word webdav

我们有:

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

打开我们文件的网址以文件名称结尾,并在发送到用户界面之前以UTF-8编码:

  

server.com/path/my_file_name.doc

它与文件名完美配合,没有特殊字符,但有一个丑陋的网址,如

  

server.com/path/En-têtedelettre + capital 1 050 000€.doc

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

  

server.com/path/En-têtedelettre + capital 1 050 000‬.doc

,但ms-word正在显示的错误消息包含正确的URL,所以我认为原始网址是正确的。

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

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

欢迎所有建议^^

1 个答案:

答案 0 :(得分:1)

我是http://milton.io(java webdav服务器库)的作者,我发现了一个问题,MS客户端对某些网址的编码不正确,而milton有一些解决方法。您使用的是什么webdav框架/服务器?

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

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

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