Edit report at https://bugs.php.net/bug.php?id=63450&edit=1
ID: 63450 Updated by: [email protected] Reported by: trollofdarkness at gmail dot com Summary: iconv returns false when illegal character encountered -Status: Open +Status: Not a bug Type: Bug Package: ICONV related Operating System: Debian 5 Lenny PHP Version: 5.4.8 Block user comment: N Private report: N New Comment: This is not a PHP issue. This is a change in recent versions of libiconv. If you link PHP against an older version of libiconv it will work again or you can use mbstring_convert_encoding(). And we have a new uconverter extension feature coming that will do a better job than either of these. See https://wiki.php.net/rfc/uconverter Previous Comments: ------------------------------------------------------------------------ [2012-11-06 21:45:33] trollofdarkness at gmail dot com Description: ------------ Hi everyone, I have been, since I think the version 5.3.x is out (and still with 5.4.8), experiencing issues with iconv. Especially, when an illegal character is encountered and the //IGNORE flag is set on the target charset, the function returns FALSE instead of just skipping this character. This is problematic because if a single character in a 50 000 chars long string is "illegal" then the output is nothing, just for one char... It does not happen with the TRANSLIT flag. I experienced that with UTF8 (from) and ISO-8859-15 (to) charsets, I did not test with other ones. Below is an example to reproduce the bug. Note : I saw there are other bug reports about similar issues, but they're all saying the string is cut... In my case, it literally returns false. So, might be different? Test script: --------------- <?php $str = " foo è foo "; $result = iconv("UTF-8", "ISO-8859-15"."//IGNORE", $str); var_dump($result); // false, instead of "foo ... foo" ?> Expected result: ---------------- foo foo Actual result: -------------- false ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=63450&edit=1
