Декодирование URL не работает должным образом - PullRequest
2 голосов
/ 21 октября 2010

Мой браузер показывает URL с именем файла как

http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0%2C1%25.pdf

Фактическое имя файла: 204160_20090604_Atropine_DCB_oogdruppels_0,5%.pdf

После urldecode он дает неправильное имя файла как <a href="http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0,1%.pdf" rel="nofollow">http://www.example.com/pdf/204177_20090604_Chloorhexidine_DCB_oogdruppels_0,1%.pdf</a>

Обновление :

Изначально я думал, что проблема с декодированием URL, но такие файлы, как имя 204153_20090605_Aluminiumacetotartraat_DCB_oordruppels_1,2%.pdf при рендеринге в браузере, выдают неверный запрос.Я использую каркас Kohana 3.Это связано с сервером?

Ответы [ 3 ]

4 голосов
/ 21 октября 2010
$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

Все ок.Вы ошибка где-то еще.

2 голосов
/ 21 октября 2010

Вы смотрите на два разных файла.

Невозможно кодировать 204160_20090604_Atropine_DCB_oogdruppels_ в 204177_20090604_Chloorhexidine_DCB_oogdruppels_, кодировка не меняет алфавитные символы.

Ошибка наиболее вероятна в коде, который создает список файлов и выводит ссылки; Отображение между названиями ссылок и именами файлов, похоже, испорчено.

0 голосов
/ 21 октября 2010

это даст вам точное имя файла 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") декодирует все символы, кроме% (процентов), то есть у "% 25" в названном выше имени файла

...