java - webdav 协议(protocol)期间 Microsoft Word url 编码的问题

标签 java ms-word webdav

我们有:

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

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

server.com/path/my_file_name.doc

它可以完美地处理没有特殊字符但带有丑陋网址的文件名

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

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

server.com/path/En-tête de lettre + capital 1 050 000 �.doc

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

最后但并非最不重要的一点是:当服务器在 Windows 平台上运行时它可以工作。

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

欢迎提出建议^^

最佳答案

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

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

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

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

关于java - webdav 协议(protocol)期间 Microsoft Word url 编码的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15164536/

相关文章:

java - 如何通过 Javadocs 中的参数引用正确指定返回

c++ - 使用 Active Qt 将图片添加到 Word 后居中

html - 从网站复制和粘贴 - 字体粗细 : bold versus <b>

ms-word - Word 未连接到 WebDAV 服务器

java - 在不知道需要多少个 ArrayList 的情况下,如何创建 ArrayList 的映射?

java - pk使用 `pkexec` 打开 .jar 文件并使用桌面条目运行命令

excel - 隐藏 MS Office 功能区中的加载项选项卡(尤其是 PowerPivot 选项卡)

php - 你如何让当前用户登录到 apache 领域?

svn - 通过 apache webdav 访问 subversion 存储库时 Pdf 被破坏

java - 2 个类相互引用可以吗?