Workaround for some non ASCII characters

Bug: b/293388944
Change-Id: I7454f1faa81be7e49925aae6eb6469a18fe58e6a
diff --git a/src/library_desugar/jdk11/desugar_jdk_libs.json b/src/library_desugar/jdk11/desugar_jdk_libs.json
index c5701ac..965e3cf 100644
--- a/src/library_desugar/jdk11/desugar_jdk_libs.json
+++ b/src/library_desugar/jdk11/desugar_jdk_libs.json
@@ -268,6 +268,12 @@
         "java.util.OptionalInt": "java.util.OptionalConversions",
         "java.util.OptionalLong": "java.util.OptionalConversions"
       }
+    },
+    {
+      "api_level_below_or_equal": 18,
+      "rewrite_prefix": {
+        "java.nio.charset.StandardCharsets": "j$.nio.charset.StandardCharsets"
+      }
     }
   ],
   "program_flags": [
@@ -405,6 +411,14 @@
           "j$.util.stream.Stream": "java.util.stream.Stream"
         }
       }
+    },
+    {
+      "api_level_below_or_equal": 18,
+      "retarget_static_field": {
+        "sun.nio.cs.US_ASCII sun.nio.cs.US_ASCII#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#US_ASCII",
+        "sun.nio.cs.ISO_8859_1 sun.nio.cs.ISO_8859_1#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#ISO_8859_1",
+        "sun.nio.cs.UTF_8 sun.nio.cs.UTF_8#INSTANCE": "java.nio.charset.Charset java.nio.charset.StandardCharsets#UTF_8"
+      }
     }
   ],
   "shrinker_config": [
diff --git a/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java b/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
index c1817a7..a8fbdbf 100644
--- a/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
+++ b/src/main/java/com/android/tools/r8/utils/DeterminismChecker.java
@@ -120,6 +120,12 @@
     if (!callback.onLine(header)) {
       return;
     }
+    // TODO(b/293388944): The comparison is not valid for Strings containing some non
+    //  ASCII characters such as taiwanese characters.
+    if (method.getHolderType().toString().equals("sun.nio.cs.EUC_TWMapping")
+        || method.getHolderType().toString().equals("sun.nio.cs.GB18030")) {
+      return;
+    }
     if (method.hasCode()) {
       List<String> lines = StringUtils.splitLines(method.getCode().toString());
       for (String line : lines) {
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
index 8245517..d25f709 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryDeterminismTest.java
@@ -4,7 +4,7 @@
 package com.android.tools.r8.desugar.desugaredlibrary;
 
 import static com.android.tools.r8.desugar.desugaredlibrary.test.CompilationSpecification.D8_L8DEBUG;
-import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8Jdk11;
+import static com.android.tools.r8.desugar.desugaredlibrary.test.LibraryDesugaringSpecification.getJdk8AndAll3Jdk11;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -36,7 +36,7 @@
   public static List<Object[]> data() {
     return buildParameters(
         getTestParameters().withDexRuntimes().withAllApiLevels().build(),
-        getJdk8Jdk11(),
+        getJdk8AndAll3Jdk11(),
         ImmutableList.of(D8_L8DEBUG));
   }