Bug #73793 [Opn->Csd]: WDDX uses wrong decimal seperator

From: 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

« previous php.bugs (#210660) next »