#43815 [Opn->Bgs]: iconv() throws no error on invalid multibyte input

From: Date: Fri, 11 Jan 2008 16:26:50 +0000
Subject: #43815 [Opn->Bgs]: iconv() throws no error on invalid multibyte input
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-121200@lists.php.net to get a copy of this message
ID: 43815 User updated by: php at benjaminschulz dot com Reported By: php at benjaminschulz dot com -Status: Open +Status: Bogus Bug Type: ICONV related Operating System: Mac OS X 10.5.1 PHP Version: 5.3CVS-2008-01-11 (CVS) New Comment: This seems to be related to the underlying iconv implementation (libiconv vs. glibc). Previous Comments: ------------------------------------------------------------------------ [2008-01-11 10:03:55] php at benjaminschulz dot com Description: ------------ iconv() on OSX throws no error if the input string is not valid on multibyte encodings Reproduce code: --------------- <?php function dump($str) { printf('"%s" %d bytes, hex:', $str, strlen($str) ); for($i = 0; $i < strlen($str); $i++) { printf(' %02X', ord($str{$i})); } echo PHP_EOL; } // some german umlauts in iso $str = "f\xf6\xd6\xdf"; error_reporting(E_ALL | E_STRICT); dump($str); foreach(array("UTF-16", "UCS-2") AS $enc) { echo PHP_EOL, "$enc:", PHP_EOL; dump(iconv($enc, $enc, $str)); } Expected result: ---------------- output of the code on linux: "f&#65533;&#65533;&#65533;" 4 bytes, hex: 66 F6 D6 DF UTF-16: Notice: iconv(): Detected an incomplete multibyte character in input string in ... on line 21 "&#65533;&#65533;f&#65533;" 4 bytes, hex: FF FE 66 F6 UCS-2: Notice: iconv(): Detected an illegal character in input string in ... on line 21 "f&#65533;" 2 bytes, hex: 66 F6 Actual result: -------------- the same on osx: "f&#65533;&#65533;&#65533;" 4 bytes, hex: 66 F6 D6 DF UTF-16: "&#65533;&#65533;f&#65533;&#65533;&#65533;" 6 bytes, hex: FE FF 66 F6 D6 DF UCS-2: "f&#65533;&#65533;&#65533;" 4 bytes, hex: 66 F6 D6 DF ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=43815&edit=1

« previous php.bugs (#121200) next »