PHPのWebDAV 実装に取り組んでいます。Windows と他のオペレーティング システムの連携を容易にするために、いくつかの文字エンコーディング フープを通過する必要があります。
Windows は HTTP 要求で ISO-8859-1 を使用しますが、他のほとんどのクライアントは ascii を超えるものを UTF-8 としてエンコードします。
私の最初のアプローチは、これを完全に無視することでしたが、URL を返すときにすぐに問題に遭遇しました。次に、すべての 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 文字であることはなんとなくわかりますが、同じファイルを更新するとエラーがスローされます (特に理由はありません)。
より多くの情報を提供できれば幸いです。