Separator and digit characters used by locale-aware formatters =============================================================== Each character below appears LITERALLY between the << >> guards. Guards are ASCII. GROUP (THOUSANDS) SEPARATORS U+002C COMMA <<,>> en-US, en-GB, en-IN, ja-JP, zh-CN U+002E FULL STOP <<.>> de-DE, es-ES U+00A0 NO-BREAK SPACE << >> pl-PL, ru-RU U+202F NARROW NO-BREAK SPACE << >> fr-FR (changed from U+00A0 in CLDR 34) U+2019 RIGHT SINGLE QUOTATION MARK <<’>> de-CH (an apostrophe-LOOKING character, not U+0027) U+066C ARABIC THOUSANDS SEPARATOR <<٬>> ar-EG and other 'arab' numbering locales DECIMAL SEPARATORS U+002E FULL STOP <<.>> en-*, ja-JP, zh-CN, de-CH U+002C COMMA <<,>> de-DE, fr-FR, es-ES, pl-PL, ru-RU U+066B ARABIC DECIMAL SEPARATOR <<٫>> ar-EG THE GAP BETWEEN AN AMOUNT AND ITS CURRENCY SYMBOL U+00A0 NO-BREAK SPACE << >> de-DE, fr-FR, es-ES, pl-PL, ru-RU, de-CH (none) en-US, en-GB, en-IN, ja-JP DIGIT SETS (CLDR numbering systems) latn 0 1 2 3 4 5 6 7 8 9 <<0123456789>> arab U+0660..U+0669 <<٠١٢٣٤٥٦٧٨٩>> Arabic-Indic, default for ar-EG arabext U+06F0..U+06F9 <<۰۱۲۳۴۵۶۷۸۹>> Extended Arabic-Indic, default for fa-IR deva U+0966..U+096F <<०१२३४५६७८९>> Devanagari, selectable for hi-IN PERCENT AND SIGN CHARACTERS U+0025 PERCENT SIGN <<%>> U+066A ARABIC PERCENT SIGN <<٪>> U+2212 MINUS SIGN <<−>> CLDR's minus is NOT U+002D HYPHEN-MINUS U+002D HYPHEN-MINUS <<->> WHAT TO ASSERT -------------- 1. Reading this file and extracting each << >> block yields exactly the code point named on the same line — no normalisation has folded U+00A0 to U+0020 or U+2019 to U+0027. 2. Your number parser accepts every group separator listed and returns 1234567 for a string built from any of them. 3. Your digit mapper turns each non-latn digit set back into 0-9. 4. A round trip through your storage layer (JSON, CSV, a database column) preserves U+202F and U+00A0 rather than collapsing either to a plain space.