Bug #73793 [Opn->Csd]: WDDX uses wrong decimal seperator
| From: | cmb@php.net | Date: | Sun, 13 Aug 2017 19:15:58 +0000 |
| Subject: | Bug #73793 [Opn->Csd]: WDDX uses wrong decimal seperator | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-210660@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73793&edit=1
ID: 73793
Updated by: cmb@php.net
Reported by: maroszek at gmx dot net
Summary: WDDX uses wrong decimal seperator
-Status: Open
+Status: Closed
Type: Bug
Package: WDDX related
Operating System: Windows
PHP Version: 7.1.0
Block user comment: N
Private report: N
New Comment:
Automatic comment on behalf of cmbecker69@gmx.de
Revision: http://git.php.net/?p=php-src.git;a=commit;h=f64be0b0135f742df31bc97dd3c04f84f342878e
Log: Fixed bug #73793 (WDDX uses wrong decimal seperator)
Previous Comments:
------------------------------------------------------------------------
[2016-12-20 11:59:39] maroszek at gmx dot net
Description:
------------
WDDX does locale aware conversion from double to string. Unfortunately it does not support locale
aware conversion back to double. Anyways: I would suggest to disable locale aware conversion and
always use a point (.) as decimal seperator.
Test script:
---------------
setlocale(LC_ALL , "German");
$x = Array("XYZ"=>5.1);
$y = wddx_serialize_value($x);
var_dump($y);
$z = wddx_deserialize($y);
var_dump($z);
echo ($x == $z) ? "OK" : "FAIL";
Expected result:
----------------
string(120) "<wddxPacket
version='1.0'><header/><data><struct><var
name='XYZ'><number>5.1</number></var></struct></data></wddxPacket>"
array(1) {
["XYZ"]=>
float(5.1)
}
OK
Actual result:
--------------
string(120) "<wddxPacket
version='1.0'><header/><data><struct><var
name='XYZ'><number>5,1</number></var></struct></data></wddxPacket>"
array(1) {
["XYZ"]=>
int(5)
}
FAIL
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=73793&edit=1