Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java webdav协议期间microsoft word url编码出现问题_Java_Ms Word_Webdav - Fatal编程技术网

Java webdav协议期间microsoft word url编码出现问题

Java webdav协议期间microsoft word url编码出现问题,java,ms-word,webdav,Java,Ms Word,Webdav,我们有: 在Linux(java应用程序)上运行的webdav服务器 Windows 7上使用ms word 2010的客户端 打开文件的URL以文件名结尾,并在发送到UI之前以UTF-8编码: server.com/path/my\u file\u name.doc 它可以很好地处理没有特殊字符的文件名,但url很难看,比如 server.com/path/En-tête de lettre+capital 1050000欧元.doc ,我们的服务器无法访问该文件。 在堆栈跟踪中,我们可以

我们有:

  • 在Linux(java应用程序)上运行的webdav服务器
  • Windows 7上使用ms word 2010的客户端
打开文件的URL以文件名结尾,并在发送到UI之前以UTF-8编码:

server.com/path/my\u file\u name.doc

它可以很好地处理没有特殊字符的文件名,但url很难看,比如

server.com/path/En-tête de lettre+capital 1050000欧元.doc

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

server.com/path/En-tÃte de lettre+capital 1050000–doc

,但ms word显示的错误消息包含正确的url,因此我认为原始url是正确的

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

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

欢迎所有建议^ ^

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

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

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


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

获取
–这是unicode损坏的标志。url中有unicode,然后它会被破坏成其他字符集,例如iso8859或win-1252。我们在版本2.0.1中使用webdav servlet:。我也要看一下profind的回复,谢谢。好吧,你们两个是对的:url被篡改成了windows-1252。因此,我们现在从UTF-8对其进行解码,并将其重新编码到windows-1252中,然后将其发送到ms word,这次不会损坏它。因此,它与firefox配合使用,firefox传输正确的UTF-8编码的url(但与IE不配合,IE也会以我们无法纠正的方式将url篡改到windows-1252中)。多亏了你。