Hello Anatol, Wednesday, July 31, 2013, 12:47:58 AM, you wrote: > Warning: fopen(ZZZZZZ~1.TXT): failed to open stream: Invalid argument in > Command line code on line 1 > bool(false) Yes, but how does the function even know that there are multibyte in it's arguments ? Since it was given the ascii compliant name ? And why 16 bit apps don't experience any errors since they are much older than php ? Maybe because they are ignorant about multibyte paths ? Shouldn't php be ignorant too if it can't handle it ? > The file without multibyte chars in the name can be opened. Also, do you > notice that question marks in the other filename? Yes, but there are no question marks in shortenened path. > Those have to be handled. But how the php function does know about that ? Now I tried to open that greek file in old msdos 622 and it worked without any issue. Although I know it will mess it name if I try to change it. And I expect the same from php. But I don't want here to rename anything in php. > Despite of how good the other old and new programs are, PHP > doesn't support this at the moment. So it should and it is a bug. And it is the two different things if I want you to make PHP Unicode complying, which I do not. I want you to make php completely ignorant of unicode paths as are the old 20 yo apps until it will be able to 100% successfully handle it. > As a dessert I'd suggest you to read this ticket from not very recent past > about how it's going in python http://bugs.python.org/issue13247 :) under Windows, os.path.abspath returns non-ASCII bytes paths as question marks but what you need abspath for ? and why php filesystem functions need to know absolute path ? another thing I noticed is that php doesn't as I thought try to translate the path, if I give it the one without unicode I get back it in the same shortened form so what is happening here ? it doesn't give the user absolute path but it must be using it somewhere internally <? $FS = new \COM('Scripting.FileSystemObject', null, CP_UTF8); $FS->CreateTextFile("c:\\zzzzzzzzz_ellada.txt"); $ShortPath = $FS->GetFile("c:\\zzzzzzzzz_ellada.txt")->ShortPath; echo "short path: ".$ShortPath."\n"; $handle = fopen($ShortPath, 'r'); echo "handle path: ".stream_get_meta_data($handle)['uri']."\n"; // echoes: C:\ZZZZZZ~2.TXT ?> -- PHP Windows Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php