Edit report at https://bugs.php.net/bug.php?id=40664&edit=1
ID: 40664
Comment by: sager at agitos dot de
Reported by: fjortiz at comunet dot es
Summary: String conversion functions wrong for multibyte
chars
Status: Assigned
Type: Bug
Package: COM related
Operating System: Win32
PHP Version: 5.2.1
Assigned To: pajoye
Block user comment: N
Private report: N
New Comment:
The patch is still missing in PHP 5.3.15 (I don't know why, the patch is
working: thanks to fjortiz!)
So I compiled php_com_dotnet.dll that is compatible to
http://windows.php.net/downloads/releases/php-5.3.15-nts-Win32-VC9-x86.msi
Download this compiled dll at
http://www.agitos.de/pub/php-5.3.15-com_dotnet-patch.zip
Previous Comments:
------------------------------------------------------------------------
[2010-08-01 17:45:49] ivars_ju at inbox dot lv
Hi,
i still have this bug in PHP Version 5.3.3
Is it so hard to commit this?
------------------------------------------------------------------------
[2009-10-20 10:50:13] [email protected]
taking the hand on this one.
------------------------------------------------------------------------
[2009-10-20 10:36:01] fjortiz at comunet dot es
after 2,5 years, can someone just commit the patch I provided to cvs?. It's
annoying to recompile any PHP version that comes out just for the sake of this
nonsense. Take into account that any use of PHP+COM+multibyte stuff fails
without this silly fix.
Thank you.
------------------------------------------------------------------------
[2009-03-22 10:12:22] j dot novak at netsystem dot cz
I see same problem with ADODB.Connection and it's parameters.
When I use:
// init connection to DB
$dbc = new COM('ADODB.Connection',null,CP_UTF8);
$dbc->Open("PROVIDER=MSDASQL;Driver={SQL
Server};Server=192.168.210.1;Database=test;UID=test;PWD=test");
// create command
$oCmd = new COM('ADODB.Command',null,CP_UTF8);
$oCmd->ActiveConnection = $dbc; //
// Table test1 has one row c1 of type nvarchar(200)
$oCmd->CommandText = "INSERT INTO test1(c1) VALUES (?)";
$oCmd->CommandType = 1;
// Some UTF-8 string (length in characters is 15, 24 in bytes)
$val='ABCÅÚúÄÄáéóXYZ';
$len=strlen($val);
$p=$oCmd->CreateParameter('name',202,1,$len,$val);
$oCmd->Parameters->Append($p);
$oCmd->Execute();
// ADODB sends to DB nvarchar(24) which is length of string
// in bytes not characters, but data has 15 characters
// in UCS-2. So in database there is correct string, but there is
// some garbage after end of string
------------------------------------------------------------------------
[2008-10-22 14:05:22] vincent at eal dot com
Any update on this bug? I still have the problem with PHP 5.2.3 and the
changelog does not indicate any fix in 5.2.6.
It is very annoying to have a nice patch standing there still with no one to
commit it to CVS.
------------------------------------------------------------------------
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=40664
--
Edit this bug report at https://bugs.php.net/bug.php?id=40664&edit=1