tdf#158890 Replace '?' with figure blank

...instead of regular blank
Do not modify other blanks (thousand separator, fraction separator)

Change-Id: I82f8023a4e55d8091545191dee55a88aba25dbdd
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161737
Tested-by: Jenkins
Reviewed-by: Laurent Balland <laurent.balland@mailo.fr>
diff --git a/basic/qa/vba_tests/format.vb b/basic/qa/vba_tests/format.vb
index 4e62e87..67abc5f 100644
--- a/basic/qa/vba_tests/format.vb
+++ b/basic/qa/vba_tests/format.vb
@@ -148,7 +148,8 @@ Sub Custom_Number_Format_Sample()
    TestUtil.AssertEqual(Format(123456, "####E0"),           "12E4",         "Format(123456, ""####E0"")")
    TestUtil.AssertEqual(Format(2345.25, "$#,###.##"),       "$2,345.25",    "Format(2345.25, ""$#,###.##"")")
    TestUtil.AssertEqual(Format(0.25, "##.###\%"),           ".25%",         "Format(0.25, ""##.###\%"")")
    TestUtil.AssertEqual(Format(12.25, "0.???"),             "12.25 ",       "Format(12.25, ""0.???"")")
    ' tdf#158890 blank replaced by figure blank
    TestUtil.AssertEqual(Format(12.25, "0.???"),             "12.25",       "Format(12.25, ""0.???"")")

    Exit Sub
errorHandler:
diff --git a/sc/qa/unit/data/contentCSV/numberFormat.csv b/sc/qa/unit/data/contentCSV/numberFormat.csv
index c6aaf5a..6f19b36 100644
--- a/sc/qa/unit/data/contentCSV/numberFormat.csv
+++ b/sc/qa/unit/data/contentCSV/numberFormat.csv
@@ -6,4 +6,4 @@
FALSE,TRUE
/>
258.9E3,-953E-06
0.5  ,"/ 123.46"
0.5  ,"/ 123.46"
diff --git a/sc/qa/unit/data/contentCSV/testNumberFormats.csv b/sc/qa/unit/data/contentCSV/testNumberFormats.csv
index 266f4ba..476a3ea 100644
--- a/sc/qa/unit/data/contentCSV/testNumberFormats.csv
+++ b/sc/qa/unit/data/contentCSV/testNumberFormats.csv
@@ -1,32 +1,32 @@
;Integer;;;Thousand separator;;;Fraction;;;Fraction + Thousand separator;;;Scientific;;;Engineering;;
Format;"""format=""000000";"""format=""??????";"""format=""??0000";"""format=""000,000";"""format=""???,???";"""format=""??0,000";"""format=""000 ?/?";"""format=""??? ?/?";"""format=""?00 ?/?";"""format=""0,000 ?/?";"""format=""?,??? ?/?";"""format=""?,?00 ?/?";"""format=""0.000E+00";"""format=""?.###E+00";"""format=""?.0##E+00";"""format=""000E+00";"""format=""???E+00";"""format=""?00E+00"
0.123456;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;format=000 1/8;format=    1/8;format= 00 1/8;format=0,000 1/8;format=      1/8;format=   00 1/8;format=1.235E-01;format=1.235E-01;format=1.235E-01;format=123E-03;format=123E-03;format=123E-03
1.23456;format=000001;format=     1;format=  0001;format=000,001;format=      1;format=  0,001;format=001 2/9;format=  1 2/9;format= 01 2/9;format=0,001 2/9;format=    1 2/9;format=   01 2/9;format=1.235E+00;format=1.235E+00;format=1.235E+00;format=001E+00;format=  1E+00;format= 01E+00
12.3456;format=000012;format=    12;format=  0012;format=000,012;format=     12;format=  0,012;format=012 1/3;format= 12 1/3;format= 12 1/3;format=0,012 1/3;format=   12 1/3;format=   12 1/3;format=1.235E+01;format=1.235E+01;format=1.235E+01;format=012E+00;format= 12E+00;format= 12E+00
123.456;format=000123;format=   123;format=  0123;format=000,123;format=    123;format=  0,123;format=123 4/9;format=123 4/9;format=123 4/9;format=0,123 4/9;format=  123 4/9;format=  123 4/9;format=1.235E+02;format=1.235E+02;format=1.235E+02;format=123E+00;format=123E+00;format=123E+00
1234.56;format=001235;format=  1235;format=  1235;format=001,235;format=  1,235;format=  1,235;format=1234 5/9;format=1234 5/9;format=1234 5/9;format=1,234 5/9;format=1,234 5/9;format=1,234 5/9;format=1.235E+03;format=1.235E+03;format=1.235E+03;format=001E+03;format=  1E+03;format= 01E+03
12345.6;format=012346;format= 12346;format= 12346;format=012,346;format= 12,346;format= 12,346;format=12345 3/5;format=12345 3/5;format=12345 3/5;format=12,345 3/5;format=12,345 3/5;format=12,345 3/5;format=1.235E+04;format=1.235E+04;format=1.235E+04;format=012E+03;format= 12E+03;format= 12E+03
123456;format=123456;format=123456;format=123456;format=123,456;format=123,456;format=123,456;format=123456    ;format=123456    ;format=123456    ;format=123,456    ;format=123,456    ;format=123,456    ;format=1.235E+05;format=1.235E+05;format=1.235E+05;format=123E+03;format=123E+03;format=123E+03
1234560;format=1234560;format=1234560;format=1234560;format=1,234,560;format=1,234,560;format=1,234,560;format=1234560    ;format=1234560    ;format=1234560    ;format=1,234,560    ;format=1,234,560    ;format=1,234,560    ;format=1.235E+06;format=1.235E+06;format=1.235E+06;format=001E+06;format=  1E+06;format= 01E+06
12345600;format=12345600;format=12345600;format=12345600;format=12,345,600;format=12,345,600;format=12,345,600;format=12345600    ;format=12345600    ;format=12345600    ;format=12,345,600    ;format=12,345,600    ;format=12,345,600    ;format=1.235E+07;format=1.235E+07;format=1.235E+07;format=012E+06;format= 12E+06;format= 12E+06
-0.123456;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;-format=000 1/8;-format=    1/8;-format= 00 1/8;-format=0,000 1/8;-format=      1/8;-format=   00 1/8;-format=1.235E-01;-format=1.235E-01;-format=1.235E-01;-format=123E-03;-format=123E-03;-format=123E-03
-1.23456;-format=000001;-format=     1;-format=  0001;-format=000,001;-format=      1;-format=  0,001;-format=001 2/9;-format=  1 2/9;-format= 01 2/9;-format=0,001 2/9;-format=    1 2/9;-format=   01 2/9;-format=1.235E+00;-format=1.235E+00;-format=1.235E+00;-format=001E+00;-format=  1E+00;-format= 01E+00
-12.3456;-format=000012;-format=    12;-format=  0012;-format=000,012;-format=     12;-format=  0,012;-format=012 1/3;-format= 12 1/3;-format= 12 1/3;-format=0,012 1/3;-format=   12 1/3;-format=   12 1/3;-format=1.235E+01;-format=1.235E+01;-format=1.235E+01;-format=012E+00;-format= 12E+00;-format= 12E+00
-123.456;-format=000123;-format=   123;-format=  0123;-format=000,123;-format=    123;-format=  0,123;-format=123 4/9;-format=123 4/9;-format=123 4/9;-format=0,123 4/9;-format=  123 4/9;-format=  123 4/9;-format=1.235E+02;-format=1.235E+02;-format=1.235E+02;-format=123E+00;-format=123E+00;-format=123E+00
-1234.56;-format=001235;-format=  1235;-format=  1235;-format=001,235;-format=  1,235;-format=  1,235;-format=1234 5/9;-format=1234 5/9;-format=1234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1.235E+03;-format=1.235E+03;-format=1.235E+03;-format=001E+03;-format=  1E+03;-format= 01E+03
-12345.6;-format=012346;-format= 12346;-format= 12346;-format=012,346;-format= 12,346;-format= 12,346;-format=12345 3/5;-format=12345 3/5;-format=12345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=1.235E+04;-format=1.235E+04;-format=1.235E+04;-format=012E+03;-format= 12E+03;-format= 12E+03
-123456;-format=123456;-format=123456;-format=123456;-format=123,456;-format=123,456;-format=123,456;-format=123456    ;-format=123456    ;-format=123456    ;-format=123,456    ;-format=123,456    ;-format=123,456    ;-format=1.235E+05;-format=1.235E+05;-format=1.235E+05;-format=123E+03;-format=123E+03;-format=123E+03
-1234560;-format=1234560;-format=1234560;-format=1234560;-format=1,234,560;-format=1,234,560;-format=1,234,560;-format=1234560    ;-format=1234560    ;-format=1234560    ;-format=1,234,560    ;-format=1,234,560    ;-format=1,234,560    ;-format=1.235E+06;-format=1.235E+06;-format=1.235E+06;-format=001E+06;-format=  1E+06;-format= 01E+06
-12345600;-format=12345600;-format=12345600;-format=12345600;-format=12,345,600;-format=12,345,600;-format=12,345,600;-format=12345600    ;-format=12345600    ;-format=12345600    ;-format=12,345,600    ;-format=12,345,600    ;-format=12,345,600    ;-format=1.235E+07;-format=1.235E+07;-format=1.235E+07;-format=012E+06;-format= 12E+06;-format= 12E+06
0.2;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;format=000 1/5;format=    1/5;format= 00 1/5;format=0,000 1/5;format=      1/5;format=   00 1/5;format=2.000E-01;format=2E-01;format=2.0E-01;format=200E-03;format=200E-03;format=200E-03
2;format=000002;format=     2;format=  0002;format=000,002;format=      2;format=  0,002;format=002    ;format=  2    ;format= 02    ;format=0,002    ;format=    2    ;format=   02    ;format=2.000E+00;format=2E+00;format=2.0E+00;format=002E+00;format=  2E+00;format= 02E+00
20;format=000020;format=    20;format=  0020;format=000,020;format=     20;format=  0,020;format=020    ;format= 20    ;format= 20    ;format=0,020    ;format=   20    ;format=   20    ;format=2.000E+01;format=2E+01;format=2.0E+01;format=020E+00;format= 20E+00;format= 20E+00
200;format=000200;format=   200;format=  0200;format=000,200;format=    200;format=  0,200;format=200    ;format=200    ;format=200    ;format=0,200    ;format=  200    ;format=  200    ;format=2.000E+02;format=2E+02;format=2.0E+02;format=200E+00;format=200E+00;format=200E+00
2000;format=002000;format=  2000;format=  2000;format=002,000;format=  2,000;format=  2,000;format=2000    ;format=2000    ;format=2000    ;format=2,000    ;format=2,000    ;format=2,000    ;format=2.000E+03;format=2E+03;format=2.0E+03;format=002E+03;format=  2E+03;format= 02E+03
20000;format=020000;format= 20000;format= 20000;format=020,000;format= 20,000;format= 20,000;format=20000    ;format=20000    ;format=20000    ;format=20,000    ;format=20,000    ;format=20,000    ;format=2.000E+04;format=2E+04;format=2.0E+04;format=020E+03;format= 20E+03;format= 20E+03
200000;format=200000;format=200000;format=200000;format=200,000;format=200,000;format=200,000;format=200000    ;format=200000    ;format=200000    ;format=200,000    ;format=200,000    ;format=200,000    ;format=2.000E+05;format=2E+05;format=2.0E+05;format=200E+03;format=200E+03;format=200E+03
2000000;format=2000000;format=2000000;format=2000000;format=2,000,000;format=2,000,000;format=2,000,000;format=2000000    ;format=2000000    ;format=2000000    ;format=2,000,000    ;format=2,000,000    ;format=2,000,000    ;format=2.000E+06;format=2E+06;format=2.0E+06;format=002E+06;format=  2E+06;format= 02E+06
20000000;format=20000000;format=20000000;format=20000000;format=20,000,000;format=20,000,000;format=20,000,000;format=20000000    ;format=20000000    ;format=20000000    ;format=20,000,000    ;format=20,000,000    ;format=20,000,000    ;format=2.000E+07;format=2E+07;format=2.0E+07;format=020E+06;format= 20E+06;format= 20E+06
200000000;format=200000000;format=200000000;format=200000000;format=200,000,000;format=200,000,000;format=200,000,000;format=200000000    ;format=200000000    ;format=200000000    ;format=200,000,000    ;format=200,000,000    ;format=200,000,000    ;format=2.000E+08;format=2E+08;format=2.0E+08;format=200E+06;format=200E+06;format=200E+06
0.123456;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;format=000 1/8;format=    1/8;format=00 1/8;format=0,000 1/8;format=      1/8;format=   00 1/8;format=1.235E-01;format=1.235E-01;format=1.235E-01;format=123E-03;format=123E-03;format=123E-03
1.23456;format=000001;format=     1;format=  0001;format=000,001;format=      1;format=  0,001;format=001 2/9;format=  1 2/9;format=01 2/9;format=0,001 2/9;format=    1 2/9;format=   01 2/9;format=1.235E+00;format=1.235E+00;format=1.235E+00;format=001E+00;format=  1E+00;format=01E+00
12.3456;format=000012;format=    12;format=  0012;format=000,012;format=     12;format=  0,012;format=012 1/3;format=12 1/3;format=12 1/3;format=0,012 1/3;format=   12 1/3;format=   12 1/3;format=1.235E+01;format=1.235E+01;format=1.235E+01;format=012E+00;format=12E+00;format=12E+00
123.456;format=000123;format=   123;format=  0123;format=000,123;format=    123;format=  0,123;format=123 4/9;format=123 4/9;format=123 4/9;format=0,123 4/9;format= 123 4/9;format= 123 4/9;format=1.235E+02;format=1.235E+02;format=1.235E+02;format=123E+00;format=123E+00;format=123E+00
1234.56;format=001235;format=  1235;format=  1235;format=001,235;format=  1,235;format=  1,235;format=1234 5/9;format=1234 5/9;format=1234 5/9;format=1,234 5/9;format=1,234 5/9;format=1,234 5/9;format=1.235E+03;format=1.235E+03;format=1.235E+03;format=001E+03;format=  1E+03;format=01E+03
12345.6;format=012346;format=12346;format=12346;format=012,346;format=12,346;format=12,346;format=12345 3/5;format=12345 3/5;format=12345 3/5;format=12,345 3/5;format=12,345 3/5;format=12,345 3/5;format=1.235E+04;format=1.235E+04;format=1.235E+04;format=012E+03;format=12E+03;format=12E+03
123456;format=123456;format=123456;format=123456;format=123,456;format=123,456;format=123,456;format=123456    ;format=123456    ;format=123456    ;format=123,456    ;format=123,456    ;format=123,456    ;format=1.235E+05;format=1.235E+05;format=1.235E+05;format=123E+03;format=123E+03;format=123E+03
1234560;format=1234560;format=1234560;format=1234560;format=1,234,560;format=1,234,560;format=1,234,560;format=1234560    ;format=1234560    ;format=1234560    ;format=1,234,560    ;format=1,234,560    ;format=1,234,560    ;format=1.235E+06;format=1.235E+06;format=1.235E+06;format=001E+06;format=  1E+06;format=01E+06
12345600;format=12345600;format=12345600;format=12345600;format=12,345,600;format=12,345,600;format=12,345,600;format=12345600    ;format=12345600    ;format=12345600    ;format=12,345,600    ;format=12,345,600    ;format=12,345,600    ;format=1.235E+07;format=1.235E+07;format=1.235E+07;format=012E+06;format=12E+06;format=12E+06
-0.123456;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;-format=000 1/8;-format=    1/8;-format=00 1/8;-format=0,000 1/8;-format=      1/8;-format=   00 1/8;-format=1.235E-01;-format=1.235E-01;-format=1.235E-01;-format=123E-03;-format=123E-03;-format=123E-03
-1.23456;-format=000001;-format=     1;-format=  0001;-format=000,001;-format=      1;-format=  0,001;-format=001 2/9;-format=  1 2/9;-format=01 2/9;-format=0,001 2/9;-format=    1 2/9;-format=   01 2/9;-format=1.235E+00;-format=1.235E+00;-format=1.235E+00;-format=001E+00;-format=  1E+00;-format=01E+00
-12.3456;-format=000012;-format=    12;-format=  0012;-format=000,012;-format=     12;-format=  0,012;-format=012 1/3;-format=12 1/3;-format=12 1/3;-format=0,012 1/3;-format=   12 1/3;-format=   12 1/3;-format=1.235E+01;-format=1.235E+01;-format=1.235E+01;-format=012E+00;-format=12E+00;-format=12E+00
-123.456;-format=000123;-format=   123;-format=  0123;-format=000,123;-format=    123;-format=  0,123;-format=123 4/9;-format=123 4/9;-format=123 4/9;-format=0,123 4/9;-format= 123 4/9;-format= 123 4/9;-format=1.235E+02;-format=1.235E+02;-format=1.235E+02;-format=123E+00;-format=123E+00;-format=123E+00
-1234.56;-format=001235;-format=  1235;-format=  1235;-format=001,235;-format=  1,235;-format=  1,235;-format=1234 5/9;-format=1234 5/9;-format=1234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1,234 5/9;-format=1.235E+03;-format=1.235E+03;-format=1.235E+03;-format=001E+03;-format=  1E+03;-format=01E+03
-12345.6;-format=012346;-format=12346;-format=12346;-format=012,346;-format=12,346;-format=12,346;-format=12345 3/5;-format=12345 3/5;-format=12345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=12,345 3/5;-format=1.235E+04;-format=1.235E+04;-format=1.235E+04;-format=012E+03;-format=12E+03;-format=12E+03
-123456;-format=123456;-format=123456;-format=123456;-format=123,456;-format=123,456;-format=123,456;-format=123456    ;-format=123456    ;-format=123456    ;-format=123,456    ;-format=123,456    ;-format=123,456    ;-format=1.235E+05;-format=1.235E+05;-format=1.235E+05;-format=123E+03;-format=123E+03;-format=123E+03
-1234560;-format=1234560;-format=1234560;-format=1234560;-format=1,234,560;-format=1,234,560;-format=1,234,560;-format=1234560    ;-format=1234560    ;-format=1234560    ;-format=1,234,560    ;-format=1,234,560    ;-format=1,234,560    ;-format=1.235E+06;-format=1.235E+06;-format=1.235E+06;-format=001E+06;-format=  1E+06;-format=01E+06
-12345600;-format=12345600;-format=12345600;-format=12345600;-format=12,345,600;-format=12,345,600;-format=12,345,600;-format=12345600    ;-format=12345600    ;-format=12345600    ;-format=12,345,600    ;-format=12,345,600    ;-format=12,345,600    ;-format=1.235E+07;-format=1.235E+07;-format=1.235E+07;-format=012E+06;-format=12E+06;-format=12E+06
0.2;format=000000;format=      ;format=  0000;format=000,000;format=       ;format=  0,000;format=000 1/5;format=    1/5;format=00 1/5;format=0,000 1/5;format=      1/5;format=   00 1/5;format=2.000E-01;format=2E-01;format=2.0E-01;format=200E-03;format=200E-03;format=200E-03
2;format=000002;format=     2;format=  0002;format=000,002;format=      2;format=  0,002;format=002    ;format=  2    ;format=02    ;format=0,002    ;format=    2    ;format=   02    ;format=2.000E+00;format=2E+00;format=2.0E+00;format=002E+00;format=  2E+00;format=02E+00
20;format=000020;format=    20;format=  0020;format=000,020;format=     20;format=  0,020;format=020    ;format=20    ;format=20    ;format=0,020    ;format=   20    ;format=   20    ;format=2.000E+01;format=2E+01;format=2.0E+01;format=020E+00;format=20E+00;format=20E+00
200;format=000200;format=   200;format=  0200;format=000,200;format=    200;format=  0,200;format=200    ;format=200    ;format=200    ;format=0,200    ;format= 200    ;format= 200    ;format=2.000E+02;format=2E+02;format=2.0E+02;format=200E+00;format=200E+00;format=200E+00
2000;format=002000;format=  2000;format=  2000;format=002,000;format=  2,000;format=  2,000;format=2000    ;format=2000    ;format=2000    ;format=2,000    ;format=2,000    ;format=2,000    ;format=2.000E+03;format=2E+03;format=2.0E+03;format=002E+03;format=  2E+03;format=02E+03
20000;format=020000;format=20000;format=20000;format=020,000;format=20,000;format=20,000;format=20000    ;format=20000    ;format=20000    ;format=20,000    ;format=20,000    ;format=20,000    ;format=2.000E+04;format=2E+04;format=2.0E+04;format=020E+03;format=20E+03;format=20E+03
200000;format=200000;format=200000;format=200000;format=200,000;format=200,000;format=200,000;format=200000    ;format=200000    ;format=200000    ;format=200,000    ;format=200,000    ;format=200,000    ;format=2.000E+05;format=2E+05;format=2.0E+05;format=200E+03;format=200E+03;format=200E+03
2000000;format=2000000;format=2000000;format=2000000;format=2,000,000;format=2,000,000;format=2,000,000;format=2000000    ;format=2000000    ;format=2000000    ;format=2,000,000    ;format=2,000,000    ;format=2,000,000    ;format=2.000E+06;format=2E+06;format=2.0E+06;format=002E+06;format=  2E+06;format=02E+06
20000000;format=20000000;format=20000000;format=20000000;format=20,000,000;format=20,000,000;format=20,000,000;format=20000000    ;format=20000000    ;format=20000000    ;format=20,000,000    ;format=20,000,000    ;format=20,000,000    ;format=2.000E+07;format=2E+07;format=2.0E+07;format=020E+06;format=20E+06;format=20E+06
200000000;format=200000000;format=200000000;format=200000000;format=200,000,000;format=200,000,000;format=200,000,000;format=200000000    ;format=200000000    ;format=200000000    ;format=200,000,000    ;format=200,000,000    ;format=200,000,000    ;format=2.000E+08;format=2E+08;format=2.0E+08;format=200E+06;format=200E+06;format=200E+06
;;;;;;;;;;;;;;;;;;
0;1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18
diff --git a/sc/qa/unit/data/ods/formats.ods b/sc/qa/unit/data/ods/formats.ods
index 27a0601..7522ae9 100644
--- a/sc/qa/unit/data/ods/formats.ods
+++ b/sc/qa/unit/data/ods/formats.ods
Binary files differ
diff --git a/svl/qa/unit/svl.cxx b/svl/qa/unit/svl.cxx
index 4fa56f4..d24729b 100644
--- a/svl/qa/unit/svl.cxx
+++ b/svl/qa/unit/svl.cxx
@@ -1368,6 +1368,8 @@ void Test::testUserDefinedNumberFormats()
    LanguageType eLang = LANGUAGE_ENGLISH_US;
    OUString sCode, sExpected;
    SvNumberFormatter aFormatter(m_xContext, eLang);
    // tdf#158890 replace '?' with figure blank (0x2007)
    constexpr OUString sBlankDigit = u" "_ustr;
    {  // tdf#97835: suppress decimal separator
        sCode = "0.##\" m\"";
        sExpected = "12 m";
@@ -1461,7 +1463,7 @@ void Test::testUserDefinedNumberFormats()
    }
    {  // tdf#102507: left alignment of denominator
        sCode = "# ?/???";
        sExpected = "3 1/2  ";
        sExpected = OUString::Concat( u"3 1/2"_ustr ) + sBlankDigit + sBlankDigit;
        checkPreviewString(aFormatter, sCode, 3.5, eLang, sExpected);
    }
    {  // tdf#100594: forced denominator
@@ -1505,15 +1507,15 @@ void Test::testUserDefinedNumberFormats()
        sExpected = "15/ 12";
        checkPreviewString(aFormatter, sCode, 1.2345667, eLang, sExpected);
        sCode = "# ?/ ???";
        sExpected = "3 1/ 2  ";
        sExpected = OUString::Concat( u"3 1/ 2"_ustr ) + sBlankDigit + sBlankDigit;
        checkPreviewString(aFormatter, sCode, 3.5, eLang, sExpected);
    }
    {  // Display 1.96 as 2 and not 1 1/1
        sCode = "# ?/?";
        sExpected = "2    ";
        sExpected = OUString::Concat( u"2 "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit;
        checkPreviewString(aFormatter, sCode, 1.96, eLang, sExpected);
        sCode = "# ?/ ?";
        sExpected = "2     ";
        sExpected = OUString::Concat( u"2 "_ustr ) + sBlankDigit + u"  "_ustr + sBlankDigit;
        checkPreviewString(aFormatter, sCode, 1.96, eLang, sExpected);
        sCode = "# #/#";
        sExpected = "2";
@@ -1745,7 +1747,7 @@ void Test::testUserDefinedNumberFormats()
    }
    {   // tdf#156449 Use '?' in exponent of scientific number
        sCode =     "0.00E+?0";
        sExpected = "3.14E+ 0"; // before change it was "3.14E+00"
        sExpected = OUString::Concat( u"3.14E+"_ustr ) + sBlankDigit + u"0"_ustr; // before change it was "3.14E+00"
        checkPreviewString(aFormatter, sCode, M_PI, eLang, sExpected);
        // There should be at least one '0' in exponent
        sCode =     "0.00E+??";
@@ -1809,11 +1811,11 @@ void Test::testUserDefinedNumberFormats()
    }
    {   // tdf#117575 treat thousand separator with '?' in integer part
        sCode = "\"Value= \"?,??0.00";
        sExpected = "Value=     3.14";
        sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit + sBlankDigit + u"3.14"_ustr;
        checkPreviewString(aFormatter, sCode, M_PI, LANGUAGE_ENGLISH_US, sExpected);
        sExpected = "Value=    12.00";
        sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" "_ustr + sBlankDigit + u"12.00"_ustr;
        checkPreviewString(aFormatter, sCode, 12, LANGUAGE_ENGLISH_US, sExpected);
        sExpected = "Value=   123.00";
        sExpected = OUString::Concat( u"Value= "_ustr ) + sBlankDigit + u" 123.00"_ustr;
        checkPreviewString(aFormatter, sCode, 123, LANGUAGE_ENGLISH_US, sExpected);
        sExpected = "Value= 1,234.00";
        checkPreviewString(aFormatter, sCode, 1234, LANGUAGE_ENGLISH_US, sExpected);
diff --git a/svl/source/numbers/zformat.cxx b/svl/source/numbers/zformat.cxx
index b5c8757..11071b5 100644
--- a/svl/source/numbers/zformat.cxx
+++ b/svl/source/numbers/zformat.cxx
@@ -64,6 +64,8 @@ const double EXP_ABS_UPPER_BOUND = 1.0E15;  // use exponential notation above th

constexpr sal_Int32 kTimeSignificantRound = 7;  // Round (date+)time at 7 decimals
                                                // (+5 of 86400 == 12 significant digits).

const sal_Unicode cBlankDigit = 0x2007;     // tdf#158890 use figure space for '?'
} // namespace

const double D_MAX_U_INT32 = double(0xffffffff);      // 4294967295.0
@@ -4549,7 +4551,7 @@ bool SvNumberformat::ImpDecimalFill( OUStringBuffer& sStr,  // number string
                        }
                        else if ( c == '?' )
                        {
                            sStr[ k ] = ' ';
                            sStr[ k ] = cBlankDigit;
                            bFilled = true;
                        }
                        else if ( !bFilled ) // #
@@ -4708,7 +4710,7 @@ bool SvNumberformat::ImpNumberFillWithThousands( OUStringBuffer& sBuff,  // numb
                        sBuff.insert(0, '0');
                        break;
                    case '?':
                        sBuff.insert(0, ' ');
                        sBuff.insert(0, cBlankDigit);
                        break;
                    }
                }
@@ -4848,7 +4850,7 @@ bool SvNumberformat::ImpNumberFill( OUStringBuffer& sBuff, // number string
                        sBuff.insert(0, '0');
                        break;
                    case '?':
                        sBuff.insert(nPosInsertBlank, ' ');
                        sBuff.insert(nPosInsertBlank, cBlankDigit);
                        break;
                    }
                }