From: php at benjaminschulz dot com
Operating system: Mac OS X 10.5.1
PHP version: 5.3CVS-2008-01-11 (CVS)
PHP Bug Type: ICONV related
Bug description: iconv() throws no error on invalid multibyte input
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���" 4 bytes, hex: 66 F6 D6 DF
UTF-16:
Notice: iconv(): Detected an incomplete multibyte character in input
string in ... on line 21
"��f�" 4 bytes, hex: FF FE 66 F6
UCS-2:
Notice: iconv(): Detected an illegal character in input string in ...
on
line 21
"f�" 2 bytes, hex: 66 F6
Actual result:
--------------
the same on osx:
"f���" 4 bytes, hex: 66 F6 D6 DF
UTF-16:
"��f���" 6 bytes, hex: FE FF 66 F6 D6
DF
UCS-2:
"f���" 4 bytes, hex: 66 F6 D6 DF
--
Edit bug report at http://bugs.php.net/?id=43815&edit=1
--
Try a CVS snapshot (PHP 4.4):
http://bugs.php.net/fix.php?id=43815&r=trysnapshot44
Try a CVS snapshot (PHP 5.2):
http://bugs.php.net/fix.php?id=43815&r=trysnapshot52
Try a CVS snapshot (PHP 5.3):
http://bugs.php.net/fix.php?id=43815&r=trysnapshot53
Try a CVS snapshot (PHP 6.0):
http://bugs.php.net/fix.php?id=43815&r=trysnapshot60
Fixed in CVS: http://bugs.php.net/fix.php?id=43815&r=fixedcvs
Fixed in release:
http://bugs.php.net/fix.php?id=43815&r=alreadyfixed
Need backtrace: http://bugs.php.net/fix.php?id=43815&r=needtrace
Need Reproduce Script: http://bugs.php.net/fix.php?id=43815&r=needscript
Try newer version: http://bugs.php.net/fix.php?id=43815&r=oldversion
Not developer issue: http://bugs.php.net/fix.php?id=43815&r=support
Expected behavior: http://bugs.php.net/fix.php?id=43815&r=notwrong
Not enough info:
http://bugs.php.net/fix.php?id=43815&r=notenoughinfo
Submitted twice:
http://bugs.php.net/fix.php?id=43815&r=submittedtwice
register_globals: http://bugs.php.net/fix.php?id=43815&r=globals
PHP 3 support discontinued: http://bugs.php.net/fix.php?id=43815&r=php3
Daylight Savings: http://bugs.php.net/fix.php?id=43815&r=dst
IIS Stability: http://bugs.php.net/fix.php?id=43815&r=isapi
Install GNU Sed: http://bugs.php.net/fix.php?id=43815&r=gnused
Floating point limitations: http://bugs.php.net/fix.php?id=43815&r=float
No Zend Extensions: http://bugs.php.net/fix.php?id=43815&r=nozend
MySQL Configuration Error: http://bugs.php.net/fix.php?id=43815&r=mysqlcfg