我正在致力於WebDAV implementation for PHP。爲了使Windows和其他操作系統更容易一起工作,我需要跳過一些字符編碼環節。規範化(webdav)unicode路徑
Windows在其HTTP請求中使用ISO-8859-1,而大多數其他客戶端將ascii之外的任何內容編碼爲UTF-8。
我的第一種方法是完全忽略這一點,但在返回網址時我很快遇到了問題。然後,我認爲這可能是最好的標準化所有網址。
以ü爲例。這將讓送過來的OS/X線作爲
u%CC%88 (this is codepoint U+0308)
的Windows sents此爲:
%FC (latin1)
但是,這樣做的%FC一個函數utf8_encode,我得到:
%C3%BC (this is codepoint U+00FC)
我應該將%C3%BC和u%CC%88作爲同一件事嗎?如果是的話......怎麼樣?沒有觸摸它似乎對Windows工作正常。它以某種方式理解它是一個unicode字符,但更新相同的文件會引發錯誤(無特殊原因)。
我很樂意提供更多信息。
當你說「Windows把它當作」時,你的意思是什麼?哪個Windows webdav客戶端?做什麼手術? – 2010-03-26 17:39:40
Windows XP SP3會將任何特殊字符(在拉丁文1平面中)編碼爲ISO-8859-1。我已經嘗試過在PUT上使用新資源。 – Evert 2010-03-29 04:01:02
你的意思是「WebDAV Mini-Redirector」?聽起來像是一個錯誤,舊的webfolder客戶端明確使用UTF-8。 – 2010-03-29 11:21:30