From:             towb at tiscali dot de
Operating system: MacOS X 10.2.6
PHP version:      4.3.4
PHP Bug Type:     *URL Functions
Bug description:  parse_url(urldecode($url)) destroys %88

Description:
------------
Only on MacOS do PHP 4.3.3 and .4 return different 
values for parse_url(urldecode($url)) and 
urldecode(parse_url($url)) when UTF-8 characters are 
involved.

The correct result below (identical strings) comes from 
PHP 4.3.4 on Linux/x86.

Reproduce code:
---------------
$string =
"file://localhost/Volumes/Second/Next/Arianne/The%20End%20of%20Evangelion%20OST/Komm,%20su%CC%88sser%20Tod.mp3";

$first_decode = urldecode($string);
$first_url = parse_url($first_decode);
$first_path = $first_url['path'];

$last_url = parse_url($string);
$last_path = $last_url['path'];
$last_decode = urldecode($last_path);

var_dump($first_path, $last_decode);
var_dump(urlencode($first_path), urlencode($last_decode));

Expected result:
----------------
string(77) "/Volumes/Second/Next/Arianne/The End of 
Evangelion OST/Komm, süsser Tod.mp3"
string(77) "/Volumes/Second/Next/Arianne/The End of 
Evangelion OST/Komm, süsser Tod.mp3"
string(95) 
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"
string(95) 
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"

Actual result:
--------------
string(77) "/Volumes/Second/Next/Arianne/The End of 
Evangelion OST/Komm, su?_sser Tod.mp3"
string(77) "/Volumes/Second/Next/Arianne/The End of 
Evangelion OST/Komm, s�sser Tod.mp3"
string(93) 
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC_sser+Tod.mp3"
string(95) 
"%2FVolumes%2FSecond%2FNext%2FArianne%2FThe+End+of+Evan
gelion+OST%2FKomm%2C+su%CC%88sser+Tod.mp3"

-- 
Edit bug report at http://bugs.php.net/?id=26391&edit=1
-- 
Try a CVS snapshot (php4):  http://bugs.php.net/fix.php?id=26391&r=trysnapshot4
Try a CVS snapshot (php5):  http://bugs.php.net/fix.php?id=26391&r=trysnapshot5
Fixed in CVS:               http://bugs.php.net/fix.php?id=26391&r=fixedcvs
Fixed in release:           http://bugs.php.net/fix.php?id=26391&r=alreadyfixed
Need backtrace:             http://bugs.php.net/fix.php?id=26391&r=needtrace
Try newer version:          http://bugs.php.net/fix.php?id=26391&r=oldversion
Not developer issue:        http://bugs.php.net/fix.php?id=26391&r=support
Expected behavior:          http://bugs.php.net/fix.php?id=26391&r=notwrong
Not enough info:            http://bugs.php.net/fix.php?id=26391&r=notenoughinfo
Submitted twice:            http://bugs.php.net/fix.php?id=26391&r=submittedtwice
register_globals:           http://bugs.php.net/fix.php?id=26391&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=26391&r=php3
Daylight Savings:           http://bugs.php.net/fix.php?id=26391&r=dst
IIS Stability:              http://bugs.php.net/fix.php?id=26391&r=isapi
Install GNU Sed:            http://bugs.php.net/fix.php?id=26391&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=26391&r=float

Reply via email to