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

Reply via email to