ICU-21140 Fix cldr-to-icu tooling to work on Windows
diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java
index 7a5fe8d..ce0b642 100644
--- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java
+++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/LdmlConverter.java
@@ -242,7 +242,7 @@
 
     private static ImmutableList<String> readLinesFromResource(String name) {
         try (InputStream in = LdmlConverter.class.getResourceAsStream(name)) {
-            return ImmutableList.copyOf(CharStreams.readLines(new InputStreamReader(in)));
+            return ImmutableList.copyOf(CharStreams.readLines(new InputStreamReader(in, UTF_8)));
         } catch (IOException e) {
             throw new RuntimeException("cannot read resource: " + name, e);
         }
diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java
index ddd34ea..3c013d6 100644
--- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java
+++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/CleanOutputDirectoryTask.java
@@ -100,8 +100,9 @@
     }
 
     @SuppressWarnings("unused")
-    public void setRoot(Path root) {
-        this.root = root;
+    public void setRoot(String root) {
+        // Use String here since on some systems Ant doesn't support automatically converting Path instances.
+        this.root = Paths.get(root);
     }
 
     @SuppressWarnings("unused")
diff --git a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java
index 4fa66fc..1a46ce4 100644
--- a/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java
+++ b/tools/cldr/cldr-to-icu/src/main/java/org/unicode/icu/tool/cldrtoicu/ant/ConvertIcuDataTask.java
@@ -16,6 +16,7 @@
 import static org.unicode.cldr.api.CldrPath.parseDistinguishingPath;
 
 import java.nio.file.Path;
+import java.nio.file.Paths;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -76,13 +77,15 @@
     private Predicate<String> idFilter = id -> true;
 
     @SuppressWarnings("unused")
-    public void setOutputDir(Path path) {
-        config.setOutputDir(path);
+    public void setOutputDir(String path) {
+        // Use String here since on some systems Ant doesn't support automatically converting Path instances.
+        config.setOutputDir(Paths.get(path));
     }
 
     @SuppressWarnings("unused")
-    public void setCldrDir(Path path) {
-        this.cldrPath = checkNotNull(path);
+    public void setCldrDir(String path) {
+        // Use String here since on some systems Ant doesn't support automatically converting Path instances.
+        this.cldrPath = checkNotNull(Paths.get(path));
     }
 
     @SuppressWarnings("unused")
@@ -108,8 +111,9 @@
     }
 
     @SuppressWarnings("unused")
-    public void setSpecialsDir(Path path) {
-        config.setSpecialsDir(path);
+    public void setSpecialsDir(String path) {
+        // Use String here since on some systems Ant doesn't support automatically converting Path instances.
+        config.setSpecialsDir(Paths.get(path));
     }
 
     @SuppressWarnings("unused")