]> granicus.if.org Git - icu/commitdiff
ICU-13286 Fixing ICU4J numbering systems with supplemental-range code point digits.
authorShane Carr <shane@unicode.org>
Thu, 27 Jul 2017 03:08:22 +0000 (03:08 +0000)
committerShane Carr <shane@unicode.org>
Thu, 27 Jul 2017 03:08:22 +0000 (03:08 +0000)
X-SVN-Rev: 40288

icu4j/main/classes/core/src/com/ibm/icu/text/NumberingSystem.java
icu4j/main/tests/core/src/com/ibm/icu/dev/test/format/NumberFormatTest.java

index fc6262910968f3bca2fdadc4edc7fef613d06870..e678b5a7b08f0202ec433c670ce58a4c7e318262 100644 (file)
@@ -88,7 +88,7 @@ public class NumberingSystem {
         }
 
         if ( !isAlgorithmic_in ) {
-            if ( desc_in.length() != radix_in || !isValidDigitString(desc_in)) {
+            if ( desc_in.codePointCount(0, desc_in.length()) != radix_in || !isValidDigitString(desc_in)) {
                 throw new IllegalArgumentException("Invalid digit string for numbering system");
             }
         }
index c5b5e33fbbc561a60d1dbb0ebcea10f049f5df5a..d84527181935a4f3c9366e1d3937acd51ab1e365 100644 (file)
@@ -1766,7 +1766,8 @@ public class NumberFormatTest extends TestFmwk {
                 new TestNumberingSystemItem( "ta_IN@numbers=finance",     1234.567, false, "1,234.567" ), // fall back to default per TR35
                 new TestNumberingSystemItem( "zh_TW@numbers=native",      1234.567, false, "\u4e00,\u4e8c\u4e09\u56db.\u4e94\u516d\u4e03" ),
                 new TestNumberingSystemItem( "zh_TW@numbers=traditional", 1234.567, true,  "\u4E00\u5343\u4E8C\u767E\u4E09\u5341\u56DB\u9EDE\u4E94\u516D\u4E03" ),
-                new TestNumberingSystemItem( "zh_TW@numbers=finance",     1234.567, true,  "\u58F9\u4EDF\u8CB3\u4F70\u53C3\u62FE\u8086\u9EDE\u4F0D\u9678\u67D2" )
+                new TestNumberingSystemItem( "zh_TW@numbers=finance",     1234.567, true,  "\u58F9\u4EDF\u8CB3\u4F70\u53C3\u62FE\u8086\u9EDE\u4F0D\u9678\u67D2" ),
+                new TestNumberingSystemItem( "en_US@numbers=mathsanb",    1234.567, false,  "𝟭,𝟮𝟯𝟰.𝟱𝟲𝟳" ), // ticket #13286
         };