我正在为 PHP 开发 WebDAV 实现。为了使 Windows 和其他操作系统更容易协同工作,我需要跳过一些字符编码环。
Windows 在其 HTTP 请求中使用 ISO-8859-1,而大多数其他客户端将 ascii 以外的任何内容编码为 UTF-8。
我的第一种方法是完全忽略这一点,但在返回 url 时我很快遇到了问题。然后我认为最好将所有网址标准化。
以ü为例。这将由 OS/X 通过网络发送为
u%CC%88 (this is codepoint U+0308)
Windows 将其发送为:
%FC (latin1)
但是,在 %FC 上执行 utf8_encode,我得到:
%C3%BC (this is codepoint U+00FC)
我应该将 %C3%BC 和 u%CC%88 视为同一件事吗?如果是这样..如何?不触摸它似乎适用于 Windows。它以某种方式理解它是一个 unicode 字符,但是更新同一个文件会引发错误(没有特殊原因)。
我很乐意提供更多信息。