Я работаю над реализацией WebDAV для PHP . Чтобы облегчить совместную работу Windows и других операционных систем, мне нужно перепрыгнуть через некоторые циклы кодирования символов.
Windows использует ISO-8859-1 в своем HTTP-запросе, в то время как большинство других клиентов кодируют что-либо кроме ascii как UTF-8.
Мой первый подход был полностью игнорировать это, но я быстро столкнулся с проблемами при возврате URL-адресов. Затем я решил, что, вероятно, лучше нормализовать все URL.
Использование ü в качестве примера. Это будет отправлено по проводам OS / X как
u%CC%88 (this is codepoint U+0308)
Windows отправляет это как:
%FC (latin1)
Но, выполняя utf8_encode на% FC, я получаю:
%C3%BC (this is codepoint U+00FC)
Должен ли я рассматривать% C3% BC и u% CC% 88 как одно и то же? Если так .. как? Не трогая это, кажется, работает нормально для окон. Он почему-то понимает, что это символ Юникода, но обновление того же файла приводит к ошибке (без особой причины).
Я был бы рад предоставить больше информации.