ID: 31314 User updated by: yury at gorodok dot net Reported By: yury at gorodok dot net -Status: Bogus +Status: Open Bug Type: ICONV related Operating System: Windows PHP Version: 5.0.2 New Comment:
Just not using third parameter in fwrite() _doesn't_help_ a bit! All lines with mbstring were (and are) commented out; I cann't see it in my phpinfo()-- so, I cann't say what value mbstring.func_overload has. Here is the code, that doesn't work now: $f=fopen($fns, "rb"); $ff=fopen($fnts, "wb"); $flen=filesize($fns); $fstr=fread($f, $flen); echo $flen."\n"; $ffstr=iconv("UTF-8","windows-1251",$fstr); echo strlen($ffstr)."\n"; echo fwrite($ff,$ffstr/*,strlen($ffstr)*/)."\n"; fclose($ff); fclose($f); Also, for some other files (that translated good), there was no problem with length. Previous Comments: ------------------------------------------------------------------------ [2004-12-27 19:40:02] [EMAIL PROTECTED] You have mbstring.func_overload turned On, thus strlen() returns number of characters, not bytes. Turn it off or just don't use third parameter of fwrite(). ------------------------------------------------------------------------ [2004-12-27 18:24:32] yury at gorodok dot net Description: ------------ The code must translate UTF-8 to windows-1251, but it truncates output! May be old compiled in version of libiconv? examples follow: UTF-8: http://yury.gorodok.net/temp/test_.html result: http://yury.gorodok.net/temp/test_1.html (the content is not essential, I suppose) Reproduce code: --------------- $fstr=fread($f, $flen); $ffstr=iconv( "windows-1251", "UTF-8",$fstr); echo fwrite($ff,$ffstr, strlen($ffstr))."\n"; ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=31314&edit=1