[ 
https://issues.apache.org/jira/browse/OFBIZ-13168?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17897707#comment-17897707
 ] 

ASF subversion and git services commented on OFBIZ-13168:
---------------------------------------------------------

Commit 74262bafe4da8392086d6fbe51844ea709cd911d in ofbiz-framework's branch 
refs/heads/trunk from Jacques Le Roux
[ https://gitbox.apache.org/repos/asf?p=ofbiz-framework.git;h=74262bafe4 ]

Fixed: Support non-breaking spaces in numeric strings (OFBIZ-13168)

In forms, numeric fields are represented by an input with type "text", which
allows user to enter/paste all characters, including non-breaking spaces
('\u00A0', '\u202F', '\u2007'), like "29 000" (the space is \u202F).

More specifically, a user can copy/paste a string from an external tool which
uses non-breaking spaces as a thousands separator, and expect that a visually
correct string will be correctly interpreted by OFBiz.

OFBiz uses java.text.NumberFormat::parse method, which does not support
non-breaking spaces : characters after this kind of spaces are simply ignored,
and "29 000" becomes "29".

Using [^\\p{IsAlnum}\\p{IsPunct}] regexp this replaces all chars that can be
a problem for NumberFormat class.


> String to numeric conversion does not support non-breaking spaces
> -----------------------------------------------------------------
>
>                 Key: OFBIZ-13168
>                 URL: https://issues.apache.org/jira/browse/OFBIZ-13168
>             Project: OFBiz
>          Issue Type: Bug
>          Components: ALL COMPONENTS
>    Affects Versions: 18.12.16, Upcoming Branch
>            Reporter: Florian Motteau
>            Assignee: Jacques Le Roux
>            Priority: Minor
>             Fix For: Upcoming Branch
>
>         Attachments: 845.patch, Image 025.png, Image 026.png, Image 029.png, 
> Image 030.png, Peek 05-11-2024 10-59.mp4, Peek 12-11-2024 12-16.mp4, 
> image-2024-11-05-11-01-13-030.png, image-2024-11-12-09-55-16-578.png
>
>
> When submitting a form with numeric values, OFBiz uses a text input (`<input 
> type="text"/>`), so all characters (entered by hand or pasted) are allowed in 
> the input.
> On form's submission, for numeric fields, the string is parsed using 
> `java.text.NumberFormat` class (parse method), using a number instance 
> formatter.
> This formatter does not supports non-breaking spaces ('\u00A0', '\u202F', 
> '\u2007'), and characters after a non-breaking space are ignored :
> !image-2024-11-05-11-01-13-030.png|width=337,height=153!
> This can lead to a situation where a visually correct form stores wrong 
> values :
> [^Peek 05-11-2024 10-59.mp4]
> One of our client reported this situation while pasting values from external 
> tools. Some values where truncated, because the external tool used 
> non-breaking spaces when displaying values.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to