Мой браузер показывает URL с именем файла как
http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0%2C1%25.pdf
Фактическое имя файла: 204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf
После urldecode он дает неправильное имя файла как http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0,1%.pdf
Обновление :
Первоначально я думал, что его проблема с URL-расшифровкой, но такие файлы, как имя 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%.pdf
а рендеринг в браузере – это 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%.pdf
запрос. Я использую каркас Kohana 3. Связано ли это с сервером?
$url = 'http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf'; $encode = urlencode($url); $decode = urldecode($encode); echo $url."<br />"; echo $encode."<br />"; echo $decode."<br />"; // outputs http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf http%3A%2F%2F204160_20090604_Atropine_DCB_oogdruppels_0%2C5%25.pdf http://204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf
Все в порядке. Вы ошибаетесь в другом месте.
Вы просматриваете два разных файла.
Невозможно urlencode 204160_20090604_Atropine_DCB_oogdruppels_
в 204177_20090604_Chloorhexidine_DCB_oogdruppels_
, кодировка не изменяет алфавитные символы.
Скорее всего, ошибка в коде, который создает список файлов и выводит ссылки; сопоставление между названиями каналов и именами файлов, похоже, перепутано.
это даст вам точное имя файла m, используя c #
Server.UrlDecode ( "http://www.example.com/pdf/204160_20090604_Atropine_DCB_oogdruppels_0,5%25.pdf"😉
, (запятая) кодируется как% 2c% (процентов) кодируется как% 25 браузерами
если вы используете Request.Url
он будет декодироваться (запятая), но не% (в процентах)
Таким образом, Server.UrlDecode («xyz») декодирует все символы, кроме% (процентов), то есть y «% 25» в указанном выше имени файла