[ 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)