> On Dec 19, 2017, at 10:27 AM, Jon Shier via swift-corelibs-dev 
> <swift-corelibs-dev@swift.org> wrote:
> 
> I’m pretty sure JSON isn’t localized, so this isn’t a bug. Using anything but 
> a . as a decimal separator isn’t valid JSON. 

JSONEncoder seems to be producing that content, so this does look like a Swift 
library issue.

Benoit: if you have a patch that fixes the issue, feel free to submit it as a 
GitHub pull request (*) against master and we’ll discuss it (and kick off 
testing) from there. I also opened <https://bugs.swift.org/browse/SR-6642> so 
that it isn’t forgotten. ✾

(*) https://help.github.com/articles/creating-a-pull-request/

> 
> 
> Jon
> 
>> On Dec 18, 2017, at 1:04 PM, Jordan Rose via swift-users 
>> <swift-us...@swift.org <mailto:swift-us...@swift.org>> wrote:
>> 
>> (moving to more relevant list)
>> 
>>> On Dec 18, 2017, at 08:51, Benoit Pereira da silva via swift-users 
>>> <swift-us...@swift.org <mailto:swift-us...@swift.org>> wrote:
>>> 
>>> Dear all
>>> 
>>> I've found a serious Bug in JSONEncoder SR-6131 
>>> <https://bugs.swift.org/browse/SR-6631> and would like to fix it.
>>> This bug cause JSON encoding issues on Double when using a local that does 
>>> not use dot as decimal separator e.g « fr_FR » (we use a coma)
>>> 
>>> Demonstration of the issue : 
>>> 
>>> import Foundation
>>> 
>>> // Required to call setLocale
>>> import Darwin
>>> 
>>> // Let's set to french
>>> setlocale(LC_ALL,"fr_FR")
>>>  
>>> struct Shot:Codable{
>>>     let seconds:Double
>>> }
>>>  
>>> let shot = Shot(seconds: 1.1)
>>>  
>>> do{
>>>     let data = try JSONEncoder().encode(shot)
>>>     if let json =  String(data:data, encoding:.utf8){
>>>         // the result is : "{"seconds":1,1000000000000001}"
>>>         // The decimal separator should not be "," but "."
>>>         print(json)
>>>     }
>>> }catch{
>>>     print("\(error)")
>>> }
>>>  
>>> exit(EX_OK)
>>> 
>>> 
>>> 
>>> 
>>> I would like to propose my fix, test it and, but i’m not mastering the 
>>> contribution mechanism.
>>> 
>>> Where should i start? 
>>> 
>>> I ve forked 
>>> https://github.com/benoit-pereira-da-silva/swift-corelibs-foundation 
>>> <https://github.com/benoit-pereira-da-silva/swift-corelibs-foundation>
>>> I have a very simple Unit test that demonstrates the issue.
>>> 
>>> How can i test my 
>>> 
>>> 
>>> Thanks
>>> 
>>> 
>>> 
>>> 
>>> 
>>> Benoit Pereira da Silva
>>> Ultra Mobile Developer & Movement Activist
>>> Développeur Ultra Mobile & Militant du mouvement
>>> https://pereira-da-silva.com <https://pereira-da-silva.com/>
>>> 
>>> <bannerp.jpg>
>>> 
>>> 
>>> 
>>> ✄ --------------------------------
>>> This e-mail is confidential. Distribution, copy, publication or use of this 
>>> information for any purpose is prohibited without agreement of the sender.
>>> Ce message est confidentiel. Toute distribution, copie, publication ou 
>>> usage des informations contenues dans ce message sont interdits sans 
>>> agrément préalable de l'expéditeur.
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> swift-users mailing list
>>> swift-us...@swift.org <mailto:swift-us...@swift.org>
>>> https://lists.swift.org/mailman/listinfo/swift-users 
>>> <https://lists.swift.org/mailman/listinfo/swift-users>
>> 
>> _______________________________________________
>> swift-users mailing list
>> swift-us...@swift.org <mailto:swift-us...@swift.org>
>> https://lists.swift.org/mailman/listinfo/swift-users 
>> <https://lists.swift.org/mailman/listinfo/swift-users>
> _______________________________________________
> swift-corelibs-dev mailing list
> swift-corelibs-dev@swift.org <mailto:swift-corelibs-dev@swift.org>
> https://lists.swift.org/mailman/listinfo/swift-corelibs-dev 
> <https://lists.swift.org/mailman/listinfo/swift-corelibs-dev>
_______________________________________________
swift-corelibs-dev mailing list
swift-corelibs-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-corelibs-dev

Reply via email to