Req->Bug #61484 [Opn->Dup]: iconv //IGNORE option doesn't work anymore in PHP5.4/5.5

From: Date: Fri, 29 Jul 2016 08:31:49 +0000
Subject: Req->Bug #61484 [Opn->Dup]: iconv //IGNORE option doesn't work anymore in PHP5.4/5.5
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-202697@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=61484&edit=1 ID: 61484 Updated by: cmb@php.net Reported by: juzna dot cz at gmail dot com Summary: iconv //IGNORE option doesn't work anymore in PHP5.4/5.5 -Status: Open +Status: Duplicate -Type: Feature/Change Request +Type: Bug Package: ICONV related Operating System: Linux PHP Version: 5.5.0 -Assigned To: +Assigned To: cmb Block user comment: N Private report: N New Comment: Actually, this is a duplicate of bug #48147. Previous Comments: ------------------------------------------------------------------------ [2015-06-05 10:36:34] php at s-hamel dot de This issue seems to get fixed in PHP 5.5.26. See http://git.php.net/?p=php-src.git;a=blob_plain;f=NEWS;hb=473ec539a1c3d242c8b171dd6a5a98fa17e05c13 - Iconv: . Fixed bug #48147 (iconv with //IGNORE cuts the string). (Stas) It would be great to have it fixed for PHP 5.4 as well. Best regards S. ------------------------------------------------------------------------ [2013-08-02 02:11:53] yohgaki@php.net It seems usable. $ php -r 'echo "\xc5\xbea\x01b\xed\xa0\x80c\xef\xbb\xbfd\xf4\x90\x80\x80e";' | iconv -f 'UTF-8' -t 'UTF-16//IGNORE' | od -t x1 iconv: 位置 18 に不正な入力シーケンスがあります 0000000 ff fe 7e 01 61 00 01 00 62 00 63 00 ff fe 64 00 0000020 65 00 0000022 ------------------------------------------------------------------------ [2013-08-02 02:01:05] yohgaki@php.net iconv() returns FALSE when there is error. I haven't checked if out_buffer is usable, though. ext/iconv/iconv.c err = php_iconv_string(in_buffer, (size_t)in_buffer_len, &out_buffer, &out_len, out_charset, in_charset); _php_iconv_show_error(err, out_charset, in_charset TSRMLS_CC); if (err == PHP_ICONV_ERR_SUCCESS && out_buffer != NULL) { RETVAL_STRINGL(out_buffer, out_len, 0); } else { if (out_buffer != NULL) { efree(out_buffer); } RETURN_FALSE; } ------------------------------------------------------------------------ [2013-08-02 01:56:00] yohgaki@php.net Fedora19 x86_64's php php > var_dump(iconv('UTF-8', 'UTF-16//IGNORE', "\xc5\xbea\x01b\xed\xa0\x80c\xef\xbb\xbfd\xf4\x90\x80\x80e")); Notice: iconv(): Detected an illegal character in input string in php shell code on line 1 bool(false) php > echo phpversion(); 5.5.0 ------------------------------------------------------------------------ [2012-11-02 13:45:19] valeriy-v at yandex dot ru PHP Version 5.4.8 Centos Linux 2.6.32-279.11.1.el6.x86_64 #1 SMP Tue Oct 16 15:57:10 UTC 2012 x86_64 ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at https://bugs.php.net/bug.php?id=61484 -- Edit this bug report at https://bugs.php.net/bug.php?id=61484&edit=1

« previous php.bugs (#202697) next »