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