DRILL-8301: Try to ensure char to byte (and vice versa) conversions use UTF-8 encoding (#2637)

diff --git a/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java b/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
index cc6578c..5a7325e 100644
--- a/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
+++ b/contrib/format-esri/src/main/java/org/apache/drill/exec/store/esri/ShpBatchReader.java
@@ -143,7 +143,7 @@
       fileReaderPrj.read(prjBuf);
       fileReaderPrj.close();
 
-      String wktReference = new String(prjBuf);
+      String wktReference = new String(prjBuf, StandardCharsets.UTF_8);
 
       Pattern pattern = Pattern.compile(SRID_PATTERN_TEXT);
       Matcher matcher = pattern.matcher(wktReference);
diff --git a/contrib/format-pcapng/src/main/java/org/apache/drill/exec/store/pcap/PcapFormatUtils.java b/contrib/format-pcapng/src/main/java/org/apache/drill/exec/store/pcap/PcapFormatUtils.java
index 6c23159..83e7dc2 100644
--- a/contrib/format-pcapng/src/main/java/org/apache/drill/exec/store/pcap/PcapFormatUtils.java
+++ b/contrib/format-pcapng/src/main/java/org/apache/drill/exec/store/pcap/PcapFormatUtils.java
@@ -20,6 +20,8 @@
 import org.apache.drill.shaded.guava.com.google.common.primitives.Ints;
 import org.apache.drill.shaded.guava.com.google.common.primitives.Shorts;
 
+import java.nio.charset.StandardCharsets;
+
 public class PcapFormatUtils {
 
   private static final String EMPTY_PACKET_PLACEHOLDER = "[]";
@@ -79,7 +81,7 @@
       return EMPTY_PACKET_PLACEHOLDER;
     }
 
-    return new String(data).trim()
+    return new String(data, StandardCharsets.UTF_8).trim()
         .replaceAll("\\P{Print}", ".");
   }
 }
diff --git a/contrib/format-pcapng/src/test/java/org/apache/drill/exec/persistent/store/pcap/TestPcapWithPersistentStore.java b/contrib/format-pcapng/src/test/java/org/apache/drill/exec/persistent/store/pcap/TestPcapWithPersistentStore.java
index 1328455..9fee14a 100644
--- a/contrib/format-pcapng/src/test/java/org/apache/drill/exec/persistent/store/pcap/TestPcapWithPersistentStore.java
+++ b/contrib/format-pcapng/src/test/java/org/apache/drill/exec/persistent/store/pcap/TestPcapWithPersistentStore.java
@@ -37,6 +37,7 @@
 import org.junit.Assert;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 
 import static org.junit.Assert.assertTrue;
@@ -63,7 +64,7 @@
                     PathUtils.join("/", storeConfig.getName()), CreateMode.PERSISTENT)) {
                 zkClient.start();
                 String oldFormatPlugin = DrillFileUtils.getResourceAsString("/config/oldPcapPlugins.json");
-                zkClient.put(oldPlugin, oldFormatPlugin.getBytes(), null);
+                zkClient.put(oldPlugin, oldFormatPlugin.getBytes(StandardCharsets.UTF_8), null);
             }
 
             try (ZookeeperPersistentStoreProvider provider =
diff --git a/contrib/format-pcapng/src/test/java/org/apache/drill/exec/store/pcap/TestSessionizePCAP.java b/contrib/format-pcapng/src/test/java/org/apache/drill/exec/store/pcap/TestSessionizePCAP.java
index 001576d..1a306de 100644
--- a/contrib/format-pcapng/src/test/java/org/apache/drill/exec/store/pcap/TestSessionizePCAP.java
+++ b/contrib/format-pcapng/src/test/java/org/apache/drill/exec/store/pcap/TestSessionizePCAP.java
@@ -31,6 +31,7 @@
 import org.joda.time.Period;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import org.junit.BeforeClass;
@@ -170,6 +171,6 @@
    * @throws IOException If the file is unreachable or unreadable, throw IOException.
    */
   private static String readAFileIntoString(String filePath) throws IOException {
-    return new String(Files.readAllBytes(Paths.get(filePath)));
+    return new String(Files.readAllBytes(Paths.get(filePath)), StandardCharsets.UTF_8);
   }
 }
diff --git a/contrib/storage-druid/src/main/java/org/apache/drill/exec/store/druid/rest/RestClientWrapper.java b/contrib/storage-druid/src/main/java/org/apache/drill/exec/store/druid/rest/RestClientWrapper.java
index 3dd47ee..5a7087e 100644
--- a/contrib/storage-druid/src/main/java/org/apache/drill/exec/store/druid/rest/RestClientWrapper.java
+++ b/contrib/storage-druid/src/main/java/org/apache/drill/exec/store/druid/rest/RestClientWrapper.java
@@ -22,18 +22,20 @@
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
-import org.apache.http.entity.ByteArrayEntity;
+import org.apache.http.entity.StringEntity;
 import org.apache.http.impl.client.DefaultHttpClient;
 
 import javax.ws.rs.core.HttpHeaders;
 import java.io.IOException;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
 import static org.apache.http.protocol.HTTP.CONTENT_TYPE;
 
 public class RestClientWrapper implements RestClient {
   private static final HttpClient httpClient = new DefaultHttpClient();
-  private static final String DEFAULT_ENCODING = "UTF-8";
+  private static final Charset DEFAULT_ENCODING = StandardCharsets.UTF_8;
 
   public HttpResponse get(String url) throws IOException {
     HttpGet httpget = new HttpGet(url);
@@ -44,7 +46,7 @@
   public HttpResponse post(String url, String body) throws IOException {
     HttpPost httppost = new HttpPost(url);
     httppost.addHeader(CONTENT_TYPE, APPLICATION_JSON);
-    HttpEntity entity = new ByteArrayEntity(body.getBytes(DEFAULT_ENCODING));
+    HttpEntity entity = new StringEntity(body, DEFAULT_ENCODING);
     httppost.setEntity(entity);
 
     return httpClient.execute(httppost);
diff --git a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
index 395dae5..ebfcb13 100644
--- a/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
+++ b/contrib/storage-elasticsearch/src/test/java/org/apache/drill/exec/store/elasticsearch/ElasticSearchQueryTest.java
@@ -37,6 +37,7 @@
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.util.Base64;
 import java.util.Collections;
@@ -97,7 +98,7 @@
     builder.field("marital_status", "S");
     builder.field("gender", "F");
     builder.field("management_role", "Senior Management");
-    builder.field("binary_field", "Senior Management".getBytes());
+    builder.field("binary_field", "Senior Management".getBytes(StandardCharsets.UTF_8));
     builder.field("boolean_field", true);
     builder.timeField("date_field", "2015/01/01 12:10:30");
     builder.field("byte_field", (byte) 123);
@@ -320,7 +321,7 @@
             "supervisor_id", "education_level", "marital_status", "gender", "management_role",
           "binary_field", "boolean_field", "date_field", "byte_field", "long_field", "float_field",
           "short_field", "decimal_field")
-        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes()), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
+        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes(StandardCharsets.UTF_8)), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
         .baselineValues(2, "Derrick Whelply", "Derrick", "Whelply", 2, "VP Country Manager", 0, 1, "1915-07-03", "1994-12-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "M", "M", "Senior Management", null, null, null, null, null, null, null, null)
         .baselineValues(4, "Michael Spence", "Michael", "Spence", 2, "VP Country Manager", 0, 1, "1969-06-20", "1998-01-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "S", "M", "Senior Management", null, null, null, null, null, null, null, null)
         .baselineValues(5, "Maya Gutierrez", "Maya", "Gutierrez", 2, "VP Country Manager", 0, 1, "1951-05-10", "1998-01-01 00:00:00.0", 35000.0, 1, "Bachelors Degree", "M", "F", "Senior Management", null, null, null, null, null, null, null, null)
@@ -364,7 +365,7 @@
             "short_field", "decimal_field")
         .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26",
             "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management",
-          Base64.getEncoder().encodeToString("Senior Management".getBytes()), true,
+          Base64.getEncoder().encodeToString("Senior Management".getBytes(StandardCharsets.UTF_8)), true,
           "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
         .go();
   }
@@ -434,7 +435,7 @@
             "supervisor_id", "education_level", "marital_status", "gender", "management_role",
           "binary_field", "boolean_field", "date_field", "byte_field", "long_field", "float_field",
           "short_field", "decimal_field")
-        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes()), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
+        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes(StandardCharsets.UTF_8)), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
         .baselineValues(2, "Derrick Whelply", "Derrick", "Whelply", 2, "VP Country Manager", 0, 1, "1915-07-03", "1994-12-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "M", "M", "Senior Management", null, null, null, null, null, null, null, null)
         .baselineValues(4, "Michael Spence", "Michael", "Spence", 2, "VP Country Manager", 0, 1, "1969-06-20", "1998-01-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "S", "M", "Senior Management", null, null, null, null, null, null, null, null)
         .go();
@@ -559,7 +560,7 @@
             "supervisor_id", "education_level", "marital_status", "gender", "management_role",
           "binary_field", "boolean_field", "date_field", "byte_field", "long_field", "float_field",
           "short_field", "decimal_field", "full_name0")
-        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes()), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45, 123)
+        .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, "1961-08-26", "1994-12-01 00:00:00.0", 80000.0, 0, "Graduate Degree", "S", "F", "Senior Management", Base64.getEncoder().encodeToString("Senior Management".getBytes(StandardCharsets.UTF_8)), true, "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45, 123)
         .baselineValues(2, "Derrick Whelply", "Derrick", "Whelply", 2, "VP Country Manager", 0, 1, "1915-07-03", "1994-12-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "M", "M", "Senior Management", null, null, null, null, null, null, null, null, 123)
         .baselineValues(4, "Michael Spence", "Michael", "Spence", 2, "VP Country Manager", 0, 1, "1969-06-20", "1998-01-01 00:00:00.0", 40000.0, 1, "Graduate Degree", "S", "M", "Senior Management", null, null, null, null, null, null, null, null, 123)
         .go();
@@ -615,7 +616,7 @@
           "short_field", "decimal_field")
         .baselineValues(1, "Sheri Nowmer", "Sheri", "Nowmer", 1, "President", 0, 1, LocalDate.parse("1961-08-26"),
             "1994-12-01 00:00:00.0", new BigDecimal("80000.00"), 0, "Graduate Degree", "S", "F", "Senior Management",
-          Base64.getEncoder().encodeToString("Senior Management".getBytes()), true,
+          Base64.getEncoder().encodeToString("Senior Management".getBytes(StandardCharsets.UTF_8)), true,
           "2015/01/01 12:10:30", 123, 123, 123., 123, 123.45)
         .go();
   }
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
index f68088a..8083c0f 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseRecordReader.java
@@ -122,11 +122,11 @@
         }
         rowKeyOnly = false;
         NameSegment root = column.getRootSegment();
-        byte[] family = root.getPath().getBytes();
+        byte[] family = root.getPath().getBytes(StandardCharsets.UTF_8);
         transformed.add(SchemaPath.getSimplePath(root.getPath()));
         PathSegment child = root.getChild();
         if (child != null && child.isNamed()) {
-          byte[] qualifier = child.getNameSegment().getPath().getBytes();
+          byte[] qualifier = child.getNameSegment().getPath().getBytes(StandardCharsets.UTF_8);
           hbaseScanColumnsOnly.addColumn(family, qualifier);
           if (!completeFamilies.contains(root.getPath())) {
             hbaseScan.addColumn(family, qualifier);
@@ -252,13 +252,13 @@
           final int familyOffset = cell.getFamilyOffset();
           final int familyLength = cell.getFamilyLength();
           final byte[] familyArray = cell.getFamilyArray();
-          final MapVector mv = getOrCreateFamilyVector(new String(familyArray, familyOffset, familyLength), true);
+          final MapVector mv = getOrCreateFamilyVector(new String(familyArray, familyOffset, familyLength, StandardCharsets.UTF_8), true);
 
           final int qualifierOffset = cell.getQualifierOffset();
           final int qualifierLength = cell.getQualifierLength();
           final byte[] qualifierArray = cell.getQualifierArray();
           final NullableVarBinaryVector v = getOrCreateColumnVector(mv,
-              new String(qualifierArray, qualifierOffset, qualifierLength));
+              new String(qualifierArray, qualifierOffset, qualifierLength,StandardCharsets.UTF_8));
 
           final int valueOffset = cell.getValueOffset();
           final int valueLength = cell.getValueLength();
diff --git a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
index 21e6d72..3cd1e0b 100644
--- a/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
+++ b/contrib/storage-hbase/src/main/java/org/apache/drill/exec/store/hbase/HBaseSchemaFactory.java
@@ -89,7 +89,7 @@
         HTableDescriptor[] tables = admin.listTables();
         Set<String> tableNames = Sets.newHashSet();
         for (HTableDescriptor table : tables) {
-          tableNames.add(new String(table.getTableName().getNameAsString()));
+          tableNames.add(table.getTableName().getNameAsString());
         }
         return tableNames;
       } catch (Exception e) {
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseRecordReaderTest.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseRecordReaderTest.java
index d183a70..d7644fa 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseRecordReaderTest.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/HBaseRecordReaderTest.java
@@ -22,6 +22,8 @@
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import java.nio.charset.StandardCharsets;
+
 import static org.apache.drill.test.TestBuilder.mapOf;
 
 @Category({SlowTest.class, HbaseStorageTest.class})
@@ -54,21 +56,21 @@
       .baselineValues(
         "a2",
         mapOf(
-          "c1", "11".getBytes(),
-          "c2", "12".getBytes(),
-          "c3", "13".getBytes()))
+          "c1", "11".getBytes(StandardCharsets.UTF_8),
+          "c2", "12".getBytes(StandardCharsets.UTF_8),
+          "c3", "13".getBytes(StandardCharsets.UTF_8)))
       .baselineValues(
         "a1",
         mapOf(
-          "c1", "21".getBytes(),
-          "c2", "22".getBytes(),
-          "c3", "23".getBytes()))
+          "c1", "21".getBytes(StandardCharsets.UTF_8),
+          "c2", "22".getBytes(StandardCharsets.UTF_8),
+          "c3", "23".getBytes(StandardCharsets.UTF_8)))
       .baselineValues(
         "a3",
         mapOf(
-          "c1", "31".getBytes(),
-          "c2", "32".getBytes(),
-          "c3", "33".getBytes()))
+          "c1", "31".getBytes(StandardCharsets.UTF_8),
+          "c2", "32".getBytes(StandardCharsets.UTF_8),
+          "c3", "33".getBytes(StandardCharsets.UTF_8)))
       .go();
   }
 
@@ -79,17 +81,17 @@
       .unOrdered()
       .baselineColumns("row_key", "F", "f0")
       .baselineValues(
-        "a1".getBytes(),
-        mapOf("c3", "23".getBytes()),
-        mapOf("c1", "21".getBytes(), "c2", "22".getBytes()))
+        "a1".getBytes(StandardCharsets.UTF_8),
+        mapOf("c3", "23".getBytes(StandardCharsets.UTF_8)),
+        mapOf("c1", "21".getBytes(StandardCharsets.UTF_8), "c2", "22".getBytes(StandardCharsets.UTF_8)))
       .baselineValues(
-        "a2".getBytes(),
-        mapOf("c3", "13".getBytes()),
-        mapOf("c1", "11".getBytes(), "c2", "12".getBytes()))
+        "a2".getBytes(StandardCharsets.UTF_8),
+        mapOf("c3", "13".getBytes(StandardCharsets.UTF_8)),
+        mapOf("c1", "11".getBytes(StandardCharsets.UTF_8), "c2", "12".getBytes(StandardCharsets.UTF_8)))
       .baselineValues(
-        "a3".getBytes(),
-        mapOf("c3", "33".getBytes()),
-        mapOf("c1", "31".getBytes(), "c2", "32".getBytes()))
+        "a3".getBytes(StandardCharsets.UTF_8),
+        mapOf("c3", "33".getBytes(StandardCharsets.UTF_8)),
+        mapOf("c1", "31".getBytes(StandardCharsets.UTF_8), "c2", "32".getBytes(StandardCharsets.UTF_8)))
       .go();
   }
 
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseQueries.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseQueries.java
index e8fa925..3357298 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseQueries.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseQueries.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.hbase;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.List;
 
@@ -47,8 +48,8 @@
       desc.addFamily(new HColumnDescriptor("f"));
       admin.createTable(desc, Arrays.copyOfRange(TestTableGenerator.SPLIT_KEYS, 0, 2));
 
-      Put p = new Put("b".getBytes());
-      p.addColumn("f".getBytes(), "c".getBytes(), "1".getBytes());
+      Put p = new Put("b".getBytes(StandardCharsets.UTF_8));
+      p.addColumn("f".getBytes(StandardCharsets.UTF_8), "c".getBytes(StandardCharsets.UTF_8), "1".getBytes(StandardCharsets.UTF_8));
       table.put(p);
 
       setColumnWidths(new int[] {8, 15});
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseRegionScanAssignments.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseRegionScanAssignments.java
index c220542..af67909 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseRegionScanAssignments.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestHBaseRegionScanAssignments.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.hbase;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
@@ -75,9 +76,9 @@
   static final ServerName SERVER_X = ServerName.valueOf(HOST_X + PORT_AND_STARTTIME);
 
   static final byte[][] splits = {{},
-    "10".getBytes(), "15".getBytes(), "20".getBytes(), "25".getBytes(), "30".getBytes(), "35".getBytes(),
-    "40".getBytes(), "45".getBytes(), "50".getBytes(), "55".getBytes(), "60".getBytes(), "65".getBytes(),
-    "70".getBytes(), "75".getBytes(), "80".getBytes(), "85".getBytes(), "90".getBytes(), "95".getBytes()};
+    "10".getBytes(UTF_8), "15".getBytes(UTF_8), "20".getBytes(UTF_8), "25".getBytes(UTF_8), "30".getBytes(UTF_8), "35".getBytes(UTF_8),
+    "40".getBytes(UTF_8), "45".getBytes(UTF_8), "50".getBytes(UTF_8), "55".getBytes(UTF_8), "60".getBytes(UTF_8), "65".getBytes(UTF_8),
+    "70".getBytes(UTF_8), "75".getBytes(UTF_8), "80".getBytes(UTF_8), "85".getBytes(UTF_8), "90".getBytes(UTF_8), "95".getBytes(UTF_8)};
 
   static final String TABLE_NAME_STR = "TestTable";
   static final TableName TABLE_NAME = TableName.valueOf(TABLE_NAME_STR);
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestOrderedBytesConvertFunctions.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestOrderedBytesConvertFunctions.java
index b64a386..1807e4c 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestOrderedBytesConvertFunctions.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestOrderedBytesConvertFunctions.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.fail;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -79,7 +80,7 @@
         ValueVector v = loader.iterator().next().getValueVector();
         for (int j = 0; j < v.getAccessor().getValueCount(); j++) {
           if  (v instanceof VarCharVector) {
-            res.add(new String(((VarCharVector) v).getAccessor().get(j)));
+            res.add(new String(((VarCharVector) v).getAccessor().get(j), StandardCharsets.UTF_8));
           } else {
             res.add(v.getAccessor().getObject(j));
           }
diff --git a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestTableGenerator.java b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestTableGenerator.java
index b66d584..94ea0f4 100644
--- a/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestTableGenerator.java
+++ b/contrib/storage-hbase/src/test/java/org/apache/drill/hbase/TestTableGenerator.java
@@ -34,6 +34,8 @@
 import org.apache.hadoop.hbase.util.PositionedByteRange;
 import org.apache.hadoop.hbase.util.SimplePositionedMutableByteRange;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 public class TestTableGenerator {
 
   public static final byte[][] SPLIT_KEYS = {
@@ -62,72 +64,72 @@
 
     BufferedMutator table = conn.getBufferedMutator(tableName);
 
-    Put p = new Put("a1".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "3".getBytes());
-    p.addColumn("f".getBytes(), "c4".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "5".getBytes());
-    p.addColumn("f".getBytes(), "c6".getBytes(), "6".getBytes());
+    Put p = new Put("a1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c4".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c6".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a2".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "3".getBytes());
-    p.addColumn("f".getBytes(), "c4".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "5".getBytes());
-    p.addColumn("f".getBytes(), "c6".getBytes(), "6".getBytes());
+    p = new Put("a2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c4".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c6".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a3".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "3".getBytes());
-    p.addColumn("f".getBytes(), "c7".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c8".getBytes(), "5".getBytes());
-    p.addColumn("f".getBytes(), "c9".getBytes(), "6".getBytes());
+    p = new Put("a3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c7".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c8".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c9".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
     p = new Put(new byte[]{'b', '4', 0});
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f2".getBytes(), "c2".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "3".getBytes());
-    p.addColumn("f2".getBytes(), "c4".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "5".getBytes());
-    p.addColumn("f2".getBytes(), "c6".getBytes(), "6".getBytes());
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c4".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c6".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("b4".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f2".getBytes(), "c2".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "3".getBytes());
-    p.addColumn("f2".getBytes(), "c4".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "5".getBytes());
-    p.addColumn("f2".getBytes(), "c6".getBytes(), "6".getBytes());
+    p = new Put("b4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c4".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c6".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("b5".getBytes());
-    p.addColumn("f2".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "2".getBytes());
-    p.addColumn("f2".getBytes(), "c3".getBytes(), "3".getBytes());
-    p.addColumn("f".getBytes(), "c4".getBytes(), "4".getBytes());
-    p.addColumn("f2".getBytes(), "c5".getBytes(), "5".getBytes());
-    p.addColumn("f".getBytes(), "c6".getBytes(), "6".getBytes());
+    p = new Put("b5".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c3".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c4".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c5".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c6".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("b6".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f2".getBytes(), "c3".getBytes(), "2".getBytes());
-    p.addColumn("f".getBytes(), "c5".getBytes(), "3".getBytes());
-    p.addColumn("f2".getBytes(), "c7".getBytes(), "4".getBytes());
-    p.addColumn("f".getBytes(), "c8".getBytes(), "5".getBytes());
-    p.addColumn("f2".getBytes(), "c9".getBytes(), "6".getBytes());
+    p = new Put("b6".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c3".getBytes(UTF_8), "2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c5".getBytes(UTF_8), "3".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c7".getBytes(UTF_8), "4".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c8".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f2".getBytes(UTF_8), "c9".getBytes(UTF_8), "6".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("b7".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "1".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "2".getBytes());
+    p = new Put("b7".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "2".getBytes(UTF_8));
     table.mutate(p);
 
     table.close();
@@ -149,22 +151,22 @@
 
     BufferedMutator table = conn.getBufferedMutator(tableName);
 
-    Put p = new Put("a1".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "21".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "22".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "23".getBytes());
+    Put p = new Put("a1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "21".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "22".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "23".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a2".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "11".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "12".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "13".getBytes());
+    p = new Put("a2".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "11".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "12".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "13".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a3".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "31".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "32".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "33".getBytes());
+    p = new Put("a3".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "31".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "32".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "33".getBytes(UTF_8));
     table.mutate(p);
 
     table.close();
@@ -187,22 +189,22 @@
 
     BufferedMutator table = conn.getBufferedMutator(tableName);
 
-    Put p = new Put("a1".getBytes());
-    p.addColumn("f0".getBytes(), "c1".getBytes(), "21".getBytes());
-    p.addColumn("f0".getBytes(), "c2".getBytes(), "22".getBytes());
-    p.addColumn("F".getBytes(), "c3".getBytes(), "23".getBytes());
+    Put p = new Put("a1".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c1".getBytes(UTF_8), "21".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c2".getBytes(UTF_8), "22".getBytes(UTF_8));
+    p.addColumn("F".getBytes(UTF_8), "c3".getBytes(UTF_8), "23".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a2".getBytes());
-    p.addColumn("f0".getBytes(), "c1".getBytes(), "11".getBytes());
-    p.addColumn("f0".getBytes(), "c2".getBytes(), "12".getBytes());
-    p.addColumn("F".getBytes(), "c3".getBytes(), "13".getBytes());
+    p = new Put("a2".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c1".getBytes(UTF_8), "11".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c2".getBytes(UTF_8), "12".getBytes(UTF_8));
+    p.addColumn("F".getBytes(UTF_8), "c3".getBytes(UTF_8), "13".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("a3".getBytes());
-    p.addColumn("f0".getBytes(), "c1".getBytes(), "31".getBytes());
-    p.addColumn("f0".getBytes(), "c2".getBytes(), "32".getBytes());
-    p.addColumn("F".getBytes(), "c3".getBytes(), "33".getBytes());
+    p = new Put("a3".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c1".getBytes(UTF_8), "31".getBytes(UTF_8));
+    p.addColumn("f0".getBytes(UTF_8), "c2".getBytes(UTF_8), "32".getBytes(UTF_8));
+    p.addColumn("F".getBytes(UTF_8), "c3".getBytes(UTF_8), "33".getBytes(UTF_8));
     table.mutate(p);
 
     table.close();
@@ -233,11 +235,11 @@
     while (rowCount < 1000) {
       char rowKeyChar = 'a';
       for (int i = 0; i < numberRegions; i++) {
-        Put p = new Put((""+rowKeyChar+iteration).getBytes());
+        Put p = new Put((""+rowKeyChar+iteration).getBytes(UTF_8));
         for (int j = 1; j <= numColumns; j++) {
           bytes = new byte[5000];
           random.nextBytes(bytes);
-          p.addColumn("f".getBytes(), ("c"+j).getBytes(), bytes);
+          p.addColumn("f".getBytes(UTF_8), ("c"+j).getBytes(UTF_8), bytes);
         }
         table.mutate(p);
 
@@ -270,22 +272,22 @@
     BufferedMutator table = conn.getBufferedMutator(tableName);
 
     for (int i = 0; i <= 100; ++i) {
-      Put p = new Put((String.format("%03d", i)).getBytes());
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03d", i).getBytes());
+      Put p = new Put((String.format("%03d", i)).getBytes(UTF_8));
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03d", i).getBytes(UTF_8));
       table.mutate(p);
     }
     for (int i = 0; i <= 1000; ++i) {
-      Put p = new Put((String.format("%04d", i)).getBytes());
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %04d", i).getBytes());
+      Put p = new Put((String.format("%04d", i)).getBytes(UTF_8));
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %04d", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
-    Put p = new Put("%_AS_PREFIX_ROW1".getBytes());
-    p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes());
+    Put p = new Put("%_AS_PREFIX_ROW1".getBytes(UTF_8));
+    p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes(UTF_8));
     table.mutate(p);
 
-    p = new Put("%_AS_PREFIX_ROW2".getBytes());
-    p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes());
+    p = new Put("%_AS_PREFIX_ROW2".getBytes(UTF_8));
+    p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes(UTF_8));
     table.mutate(p);
 
     table.close();
@@ -325,7 +327,7 @@
       }
 
       Put p = new Put(rowKey);
-      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -365,7 +367,7 @@
       }
 
       Put p = new Put(rowKey);
-      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes(UTF_8));
       table.mutate(p);
 
       if (interval == smallInterval) {
@@ -407,7 +409,7 @@
       }
 
       Put p = new Put(rowKey);
-      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, "dummy".getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -436,7 +438,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 9);
       OrderedBytes.encodeFloat64(br, i, Order.ASCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -467,7 +469,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 5);
       OrderedBytes.encodeFloat32(br, i,Order.ASCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -498,7 +500,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 9);
       OrderedBytes.encodeInt64(br, i, Order.ASCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -529,7 +531,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 5);
       OrderedBytes.encodeInt32(br, i, Order.ASCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -560,7 +562,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 9);
       OrderedBytes.encodeFloat64(br, i, Order.DESCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -591,7 +593,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 5);
       OrderedBytes.encodeFloat32(br, i, Order.DESCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %03f", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -622,7 +624,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 9);
       OrderedBytes.encodeInt64(br, i, Order.DESCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -654,7 +656,7 @@
       PositionedByteRange br = new SimplePositionedMutableByteRange(bytes, 0, 5);
       OrderedBytes.encodeInt32(br, i, Order.DESCENDING);
       Put p = new Put(bytes);
-      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes());
+      p.addColumn(FAMILY_F, COLUMN_C, String.format("value %d", i).getBytes(UTF_8));
       table.mutate(p);
     }
 
@@ -679,11 +681,11 @@
 
     BufferedMutator table = conn.getBufferedMutator(tableName);
 
-    Put p = new Put("a1".getBytes());
-    p.addColumn("f".getBytes(), "c1".getBytes(), "".getBytes());
-    p.addColumn("f".getBytes(), "c2".getBytes(), "".getBytes());
-    p.addColumn("f".getBytes(), "c3".getBytes(), "5".getBytes());
-    p.addColumn("f".getBytes(), "c4".getBytes(), "".getBytes());
+    Put p = new Put("a1".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c1".getBytes(UTF_8), "".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c2".getBytes(UTF_8), "".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c3".getBytes(UTF_8), "5".getBytes(UTF_8));
+    p.addColumn("f".getBytes(UTF_8), "c4".getBytes(UTF_8), "".getBytes(UTF_8));
     table.mutate(p);
 
     table.close();
diff --git a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveUtilities.java b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveUtilities.java
index 46c62b2..0d82f1c 100644
--- a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveUtilities.java
+++ b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/HiveUtilities.java
@@ -88,6 +88,7 @@
 
 import java.math.BigDecimal;
 import java.math.RoundingMode;
+import java.nio.charset.StandardCharsets;
 import java.sql.Date;
 import java.sql.Timestamp;
 import java.util.List;
@@ -124,7 +125,7 @@
     try {
       switch (pCat) {
         case BINARY:
-          return value.getBytes();
+          return value.getBytes(StandardCharsets.UTF_8);
         case BOOLEAN:
           return Boolean.parseBoolean(value);
         case DECIMAL: {
@@ -143,9 +144,9 @@
           return Long.parseLong(value);
         case STRING:
         case VARCHAR:
-          return value.getBytes();
+          return value.getBytes(StandardCharsets.UTF_8);
         case CHAR:
-          return value.trim().getBytes();
+          return value.trim().getBytes(StandardCharsets.UTF_8);
         case TIMESTAMP:
           return Timestamp.valueOf(value);
         case DATE:
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/TestHiveDrillNativeParquetReader.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/TestHiveDrillNativeParquetReader.java
index 6b9a7cd..9c7f7bb 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/TestHiveDrillNativeParquetReader.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/TestHiveDrillNativeParquetReader.java
@@ -21,6 +21,7 @@
 import static org.junit.Assert.assertEquals;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -232,7 +233,7 @@
         // There is a regression in Hive 1.2.1 in binary and boolean partition columns. Disable for now.
         //"binary_part",
         "boolean_part", "tinyint_part", "decimal0_part", "decimal9_part", "decimal18_part", "decimal28_part", "decimal38_part", "double_part", "float_part", "int_part", "bigint_part", "smallint_part", "string_part", "varchar_part", "timestamp_part", "date_part", "char_part")
-        .baselineValues("binaryfield".getBytes(), false, 34, new BigDecimal("66"), new BigDecimal("2347.92"), new BigDecimal("2758725827.99990"), new BigDecimal("29375892739852.8"), new BigDecimal("89853749534593985.783"), 8.345d, 4.67f, 123456, 234235L, 3455, "stringfield", "varcharfield", DateUtility.parseBest("2013-07-05 17:01:00"), "charfield",
+        .baselineValues("binaryfield".getBytes(StandardCharsets.UTF_8), false, 34, new BigDecimal("66"), new BigDecimal("2347.92"), new BigDecimal("2758725827.99990"), new BigDecimal("29375892739852.8"), new BigDecimal("89853749534593985.783"), 8.345d, 4.67f, 123456, 234235L, 3455, "stringfield", "varcharfield", DateUtility.parseBest("2013-07-05 17:01:00"), "charfield",
         // There is a regression in Hive 1.2.1 in binary and boolean partition columns. Disable for now.
         //"binary",
         true, 64, new BigDecimal("37"), new BigDecimal("36.90"), new BigDecimal("3289379872.94565"), new BigDecimal("39579334534534.4"), new BigDecimal("363945093845093890.900"), 8.345d, 4.67f, 123456, 234235L, 3455, "string", "varchar", DateUtility.parseBest("2013-07-05 17:01:00"), DateUtility.parseLocalDate("2013-07-05"), "char").baselineValues( // All fields are null, but partition fields have non-null values
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/HiveTestUDFImpls.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/HiveTestUDFImpls.java
index 5a93b87..df06a83 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/HiveTestUDFImpls.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/HiveTestUDFImpls.java
@@ -250,4 +250,4 @@
       super("testHiveUDFDECIMAL", PrimitiveCategory.DECIMAL, PrimitiveCategory.VARCHAR);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/TestInbuiltHiveUDFs.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/TestInbuiltHiveUDFs.java
index dae2b81..eb2c3e6 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/TestInbuiltHiveUDFs.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/fn/hive/TestInbuiltHiveUDFs.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec.fn.hive;
 
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.util.Arrays;
@@ -57,7 +58,7 @@
         .sqlQuery("SELECT encode(varchar_field, 'UTF-8') as rst from hive.readtest")
         .unOrdered()
         .baselineColumns("rst")
-        .baselineValues("varcharfield".getBytes())
+        .baselineValues("varcharfield".getBytes(StandardCharsets.UTF_8))
         .baselineValues(new Object[] { null })
         .go();
   }
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveStorage.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveStorage.java
index ae993e6..ecfda55 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveStorage.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveStorage.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
@@ -133,7 +134,7 @@
             "date_part",
             "char_part")
         .baselineValues(
-            "binaryfield".getBytes(),
+            "binaryfield".getBytes(StandardCharsets.UTF_8),
             false,
             34,
             new BigDecimal("66"),
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveViewsSupport.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveViewsSupport.java
index 568a7b0..898ba6d 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveViewsSupport.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/TestHiveViewsSupport.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.hive;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.drill.categories.HiveStorageTest;
 import org.apache.drill.categories.SlowTest;
@@ -138,7 +139,7 @@
             "date_part",
             "char_part")
         .baselineValues(
-            "binaryfield".getBytes(),
+            "binaryfield".getBytes(StandardCharsets.UTF_8),
             false,
             34,
             new BigDecimal("66"),
diff --git a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/complex_types/TestHiveArrays.java b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/complex_types/TestHiveArrays.java
index 3fccdce..a95a0cf 100644
--- a/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/complex_types/TestHiveArrays.java
+++ b/contrib/storage-hive/core/src/test/java/org/apache/drill/exec/hive/complex_types/TestHiveArrays.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.hive.complex_types;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 import java.util.Arrays;
 import java.util.Collections;
@@ -1716,7 +1717,7 @@
     private final byte[] bytes;
 
     private StringBytes(String s) {
-      bytes = s.getBytes();
+      bytes = s.getBytes(StandardCharsets.UTF_8);
     }
 
     @Override
@@ -1730,7 +1731,7 @@
 
     @Override
     public String toString() {
-      return new String(bytes);
+      return new String(bytes, StandardCharsets.UTF_8);
     }
   }
 
diff --git a/contrib/storage-http/src/test/java/org/apache/drill/exec/store/http/TestUserTranslationInHttpPlugin.java b/contrib/storage-http/src/test/java/org/apache/drill/exec/store/http/TestUserTranslationInHttpPlugin.java
index d753591..cb3c74c 100644
--- a/contrib/storage-http/src/test/java/org/apache/drill/exec/store/http/TestUserTranslationInHttpPlugin.java
+++ b/contrib/storage-http/src/test/java/org/apache/drill/exec/store/http/TestUserTranslationInHttpPlugin.java
@@ -58,6 +58,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -294,7 +295,7 @@
 
   private static String createEncodedText(String username, String password) {
     String pair = username + ":" + password;
-    byte[] encodedBytes = Base64.encodeBase64(pair.getBytes());
-    return "Basic " + new String(encodedBytes);
+    byte[] encodedBytes = Base64.encodeBase64(pair.getBytes(StandardCharsets.UTF_8));
+    return "Basic " + new String(encodedBytes, StandardCharsets.UTF_8);
   }
 }
diff --git a/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java b/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
index e96da0d..11f5c4e 100644
--- a/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
+++ b/contrib/storage-jdbc/src/test/java/org/apache/drill/exec/store/jdbc/TestJdbcPluginWithMySQLIT.java
@@ -41,6 +41,7 @@
 import org.testcontainers.utility.DockerImageName;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -142,7 +143,7 @@
             "xxx",
             "a medium piece of text",
             "a longer piece of text this is going on.....",
-            "this is a test".getBytes(),
+            "this is a test".getBytes(StandardCharsets.UTF_8),
             true, "XXX")
         .baselineValues(2,
             "first_name_2", "last_name_2", "One Ferry Building", "San Francisco", "CA", 94111,
@@ -155,7 +156,7 @@
             "abc",
             "a medium piece of text 2",
             "somewhat more text",
-            "this is a test 2".getBytes(),
+            "this is a test 2".getBytes(StandardCharsets.UTF_8),
             false, "YYY")
         .baselineValues(3,
             "first_name_3", "last_name_3", "176 Bowery", "New York", "NY", 10012,
@@ -168,7 +169,7 @@
             "abc",
             "a medium piece of text 3",
             "somewhat more text",
-            "this is a test 3".getBytes(),
+            "this is a test 3".getBytes(StandardCharsets.UTF_8),
             true, "ZZZ")
         .baselineValues(5,
             null, null, null, null, null, null,
diff --git a/contrib/storage-kafka/src/main/java/org/apache/drill/exec/store/kafka/decoders/AvroMessageReader.java b/contrib/storage-kafka/src/main/java/org/apache/drill/exec/store/kafka/decoders/AvroMessageReader.java
index 8413815..06ed604 100644
--- a/contrib/storage-kafka/src/main/java/org/apache/drill/exec/store/kafka/decoders/AvroMessageReader.java
+++ b/contrib/storage-kafka/src/main/java/org/apache/drill/exec/store/kafka/decoders/AvroMessageReader.java
@@ -42,6 +42,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.Map;
 import java.util.Properties;
 import java.util.stream.Collectors;
@@ -98,7 +99,7 @@
     if (deserializeKey) {
       return deserializer.deserialize(null, keyValue).toString();
     } else {
-      return new String(keyValue);
+      return new String(keyValue, StandardCharsets.UTF_8);
     }
   }
 
diff --git a/contrib/storage-kudu/src/main/codegen/templates/KuduRecordWriter.java b/contrib/storage-kudu/src/main/codegen/templates/KuduRecordWriter.java
index 26b30a0..d5ea1ac 100644
--- a/contrib/storage-kudu/src/main/codegen/templates/KuduRecordWriter.java
+++ b/contrib/storage-kudu/src/main/codegen/templates/KuduRecordWriter.java
@@ -20,6 +20,7 @@
 
 package org.apache.drill.exec.store.kudu;
 
+import java.nio.charset.StandardCharsets;
 import java.io.IOException;
 import java.lang.UnsupportedOperationException;
 import java.util.Arrays;
@@ -113,7 +114,7 @@
             <#elseif minor.class == "VarChar" >
               byte[] bytes = new byte[holder.end - holder.start];
               holder.buffer.getBytes(holder.start, bytes);
-              row.addString(fieldId, new String(bytes));
+              row.addString(fieldId, new String(bytes, StandardCharsets.UTF_8));
             <#elseif minor.class == "VarBinary">
               byte[] bytes = new byte[holder.end - holder.start];
               holder.buffer.getBytes(holder.start, bytes);
diff --git a/contrib/storage-kudu/src/main/java/org/apache/drill/exec/store/kudu/KuduRecordReader.java b/contrib/storage-kudu/src/main/java/org/apache/drill/exec/store/kudu/KuduRecordReader.java
index ed3e7e5..972afad 100644
--- a/contrib/storage-kudu/src/main/java/org/apache/drill/exec/store/kudu/KuduRecordReader.java
+++ b/contrib/storage-kudu/src/main/java/org/apache/drill/exec/store/kudu/KuduRecordReader.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.store.kudu;
 
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Map;
 
@@ -240,7 +241,7 @@
         break;
       }
       case STRING: {
-        ByteBuffer value = ByteBuffer.wrap(result.getString(pci.index).getBytes());
+        ByteBuffer value = ByteBuffer.wrap(result.getString(pci.index).getBytes(StandardCharsets.UTF_8));
         if (pci.kuduColumn.isNullable()) {
           ((NullableVarCharVector.Mutator) pci.vv.getMutator())
               .setSafe(rowIndex, value, 0, value.remaining());
diff --git a/contrib/storage-kudu/src/test/java/org/apache/drill/store/kudu/TestKuduConnect.java b/contrib/storage-kudu/src/test/java/org/apache/drill/store/kudu/TestKuduConnect.java
index 3f97d3d..2f6386d 100644
--- a/contrib/storage-kudu/src/test/java/org/apache/drill/store/kudu/TestKuduConnect.java
+++ b/contrib/storage-kudu/src/test/java/org/apache/drill/store/kudu/TestKuduConnect.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.store.kudu;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
@@ -84,7 +85,7 @@
         Insert insert = table.newInsert();
         PartialRow row = insert.getRow();
         row.addInt(0, i);
-        row.addBinary(1, ("Row " + i).getBytes());
+        row.addBinary(1, ("Row " + i).getBytes(StandardCharsets.UTF_8));
         row.addBoolean(2, i % 2 == 0);
         row.addFloat(3, i + 0.01f);
         row.addString(4, ("Row " + i));
diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/bson/BsonRecordReader.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/bson/BsonRecordReader.java
index 44852c1..5b35b5b 100644
--- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/bson/BsonRecordReader.java
+++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/bson/BsonRecordReader.java
@@ -42,6 +42,7 @@
 import java.io.UnsupportedEncodingException;
 import java.math.BigDecimal;
 import java.nio.ByteBuffer;
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 public class BsonRecordReader {
@@ -198,7 +199,7 @@
     final VarBinaryHolder vb = new VarBinaryHolder();
     BsonBinary readBinaryData = reader.readBinaryData();
     byte[] data = readBinaryData.getData();
-    Byte type = (Byte) readBinaryData.getType();
+    Byte type = readBinaryData.getType();
     // Based on specified binary type, cast it accordingly
     switch (type.intValue()) {
     case 1:
@@ -207,7 +208,7 @@
       break;
     case 2:
       // String 2
-      writeString(new String(data), writer, fieldName, isList);
+      writeString(new String(data, StandardCharsets.UTF_8), writer, fieldName, isList);
       break;
     case 8:
       // Boolean 8
@@ -220,15 +221,15 @@
       break;
     case 13:
       // JavaScript 13
-      writeString(new String(data), writer, fieldName, isList);
+      writeString(new String(data, StandardCharsets.UTF_8), writer, fieldName, isList);
       break;
     case 14:
       // Symbol 14
-      writeString(new String(data), writer, fieldName, isList);
+      writeString(new String(data, StandardCharsets.UTF_8), writer, fieldName, isList);
       break;
     case 15:
       // JavaScript (with scope) 15
-      writeString(new String(data), writer, fieldName, isList);
+      writeString(new String(data, StandardCharsets.UTF_8), writer, fieldName, isList);
       break;
     case 16:
       // 32-bit integer 16
diff --git a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java
index dc21f13..e14379d 100644
--- a/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java
+++ b/contrib/storage-mongo/src/main/java/org/apache/drill/exec/store/mongo/MongoGroupScan.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec.store.mongo;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.Comparator;
@@ -497,7 +498,7 @@
         // some types not known to DocumentCodec, e.g. DBRef.
         DocumentCodec codec = new DocumentCodec(db.getCodecRegistry(), new BsonTypeClassMap());
         String json = collection.find().first().toJson(codec);
-        approxDiskCost = json.getBytes().length * recordCount;
+        approxDiskCost = json.getBytes(StandardCharsets.UTF_8).length * recordCount;
       }
       return new ScanStats(GroupScanProperty.ESTIMATED_TOTAL_COST, recordCount, 1, approxDiskCost);
     } catch (Exception e) {
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/bson/TestBsonRecordReader.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/bson/TestBsonRecordReader.java
index 1429b14..779869d 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/bson/TestBsonRecordReader.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/bson/TestBsonRecordReader.java
@@ -24,6 +24,7 @@
 
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.time.ZoneOffset;
 
 import org.apache.drill.exec.memory.RootAllocator;
@@ -234,10 +235,10 @@
     BsonDocument bsonDoc = new BsonDocument();
     // Binary
     // String
-    byte[] bytes = "binaryValue".getBytes();
+    byte[] bytes = "binaryValue".getBytes(StandardCharsets.UTF_8);
     bsonDoc.append("binaryKey", new BsonBinary(BsonBinarySubType.BINARY, bytes));
     // String
-    byte[] bytesString = "binaryStringValue".getBytes();
+    byte[] bytesString = "binaryStringValue".getBytes(StandardCharsets.UTF_8);
     bsonDoc.append("binaryStringKey", new BsonBinary((byte) 2, bytesString));
     // Double
     byte[] bytesDouble = new byte[8];
diff --git a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuite.java b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuite.java
index 460b1b7..94bad0b 100644
--- a/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuite.java
+++ b/contrib/storage-mongo/src/test/java/org/apache/drill/exec/store/mongo/MongoTestSuite.java
@@ -26,7 +26,6 @@
 import com.mongodb.client.model.Indexes;
 import org.apache.drill.categories.MongoStorageTest;
 import org.apache.drill.categories.SlowTest;
-import org.apache.drill.shaded.guava.com.google.common.base.Charsets;
 import org.apache.drill.shaded.guava.com.google.common.io.Files;
 import org.apache.drill.shaded.guava.com.google.common.io.Resources;
 import org.apache.drill.test.BaseTest;
@@ -54,6 +53,8 @@
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
   TestMongoFilterPushDown.class,
@@ -239,10 +240,10 @@
         }
         connectionURL = containerManager.setup();
         // ToDo DRILL-7269: fix the way how data are imported for the sharded mongo cluster
-        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(EMP_DATA).toURI()), Charsets.UTF_8).read().getBytes()), EMP_DATA);
-        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(SCHEMA_CHANGE_DATA).toURI()), Charsets.UTF_8).read().getBytes()), SCHEMA_CHANGE_DATA);
-        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(DONUTS_DATA).toURI()), Charsets.UTF_8).read().getBytes()), DONUTS_DATA);
-        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(DATATYPE_DATA).toURI()), Charsets.UTF_8).read().getBytes()), DATATYPE_DATA);
+        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(EMP_DATA).toURI()), UTF_8).read().getBytes(UTF_8)), EMP_DATA);
+        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(SCHEMA_CHANGE_DATA).toURI()), UTF_8).read().getBytes(UTF_8)), SCHEMA_CHANGE_DATA);
+        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(DONUTS_DATA).toURI()), UTF_8).read().getBytes(UTF_8)), DONUTS_DATA);
+        containerManager.getMasterContainer().copyFileToContainer(Transferable.of(Files.asCharSource(new File(Resources.getResource(DATATYPE_DATA).toURI()), UTF_8).read().getBytes(UTF_8)), DATATYPE_DATA);
         TestTableGenerator.importData(containerManager.getMasterContainer(), EMPLOYEE_DB, EMPINFO_COLLECTION, EMP_DATA);
         TestTableGenerator.importData(containerManager.getMasterContainer(), EMPLOYEE_DB, SCHEMA_CHANGE_COLLECTION, SCHEMA_CHANGE_DATA);
         TestTableGenerator.importData(containerManager.getMasterContainer(), DONUTS_DB, DONUTS_COLLECTION, DONUTS_DATA);
diff --git a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixBaseTest.java b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixBaseTest.java
index ecb08c7..35887eb 100644
--- a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixBaseTest.java
+++ b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixBaseTest.java
@@ -23,6 +23,7 @@
 import java.io.InputStreamReader;
 import java.io.Reader;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 import java.sql.Array;
 import java.sql.Connection;
@@ -217,8 +218,8 @@
         pstmt.setDate(11, java.sql.Date.valueOf("2021-12-12"));
         pstmt.setTime(12, java.sql.Time.valueOf("12:12:12"));
         pstmt.setTimestamp(13, java.sql.Timestamp.valueOf("2021-12-12 12:12:12"));
-        pstmt.setBytes(14, "a_b_c_d_e_".getBytes());
-        pstmt.setBytes(15, "12345".getBytes());
+        pstmt.setBytes(14, "a_b_c_d_e_".getBytes(StandardCharsets.UTF_8));
+        pstmt.setBytes(15, "12345".getBytes(StandardCharsets.UTF_8));
         pstmt.setBoolean(16, Boolean.TRUE);
         pstmt.addBatch();
         pstmt.executeBatch();
diff --git a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixDataTypeTest.java b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixDataTypeTest.java
index 59b97ab..652f928 100644
--- a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixDataTypeTest.java
+++ b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/PhoenixDataTypeTest.java
@@ -26,6 +26,7 @@
 import static org.apache.drill.test.rowSet.RowSetUtilities.strArray;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -86,7 +87,7 @@
             LocalDate.parse("2021-12-12"),
             LocalTime.parse("12:12:12"),
             Instant.ofEpochMilli(1639311132000l),
-            "a_b_c_d_e_".getBytes(), "12345".getBytes(),
+            "a_b_c_d_e_".getBytes(StandardCharsets.UTF_8), "12345".getBytes(StandardCharsets.UTF_8),
             Boolean.TRUE)
         .build();
 
diff --git a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/secured/SecuredPhoenixDataTypeTest.java b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/secured/SecuredPhoenixDataTypeTest.java
index 67ffa5d..d5a6c38 100644
--- a/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/secured/SecuredPhoenixDataTypeTest.java
+++ b/contrib/storage-phoenix/src/test/java/org/apache/drill/exec/store/phoenix/secured/SecuredPhoenixDataTypeTest.java
@@ -30,6 +30,7 @@
 import org.junit.experimental.categories.Category;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalTime;
@@ -88,7 +89,7 @@
             LocalDate.parse("2021-12-12"),
             LocalTime.parse("12:12:12"),
             Instant.ofEpochMilli(1639311132000l),
-            "a_b_c_d_e_".getBytes(), "12345".getBytes(),
+            "a_b_c_d_e_".getBytes(StandardCharsets.UTF_8), "12345".getBytes(StandardCharsets.UTF_8),
             Boolean.TRUE)
         .build();
 
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/ComplexSchemaUtils.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/ComplexSchemaUtils.java
index 45ea5e7..d303785 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/ComplexSchemaUtils.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/ComplexSchemaUtils.java
@@ -53,7 +53,7 @@
       }
 
       VarCharHolder rowHolder = new VarCharHolder();
-      byte[] rowStringBytes = dataType.getBytes();
+      byte[] rowStringBytes = dataType.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buffer = buffer.reallocIfNeeded(rowStringBytes.length);
       buffer.setBytes(0, rowStringBytes);
 
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/CryptoFunctions.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/CryptoFunctions.java
index 01fae08..597bf10 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/CryptoFunctions.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/CryptoFunctions.java
@@ -54,10 +54,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = org.apache.commons.codec.digest.DigestUtils.md2Hex(input).toLowerCase();
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -89,10 +90,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = org.apache.commons.codec.digest.DigestUtils.md5Hex(input).toLowerCase();
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -128,10 +130,11 @@
 
       String sha1 = org.apache.commons.codec.digest.DigestUtils.sha1Hex(input);
 
+      byte[] output = sha1.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = sha1.getBytes().length;
-      buffer.setBytes(0, sha1.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -166,10 +169,11 @@
 
       String sha2 = org.apache.commons.codec.digest.DigestUtils.sha256Hex(input);
 
+      byte[] output = sha2.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = sha2.getBytes().length;
-      buffer.setBytes(0, sha2.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -203,10 +207,11 @@
 
       String sha384 = org.apache.commons.codec.digest.DigestUtils.sha384Hex(input);
 
+      byte[] output = sha384.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = sha384.getBytes().length;
-      buffer.setBytes(0, sha384.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -240,10 +245,11 @@
 
       String sha512 = org.apache.commons.codec.digest.DigestUtils.sha512Hex(input);
 
+      byte[] output = sha512.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = sha512.getBytes().length;
-      buffer.setBytes(0, sha512.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -292,10 +298,11 @@
         //Exceptions are ignored
       }
 
+      byte[] output = encryptedText.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = encryptedText.getBytes().length;
-      buffer.setBytes(0, encryptedText.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -338,15 +345,17 @@
 
         javax.crypto.Cipher cipher = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");
         cipher.init(javax.crypto.Cipher.DECRYPT_MODE, secretKey);
-        decryptedText = new String(cipher.doFinal(javax.xml.bind.DatatypeConverter.parseBase64Binary(input)));
+        decryptedText = new String(cipher.doFinal(javax.xml.bind.DatatypeConverter.parseBase64Binary(input)),
+          java.nio.charset.StandardCharsets.UTF_8);
       } catch (Exception e) {
         //Exceptions are ignored
       }
 
+      byte[] output = decryptedText.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = decryptedText.getBytes().length;
-      buffer.setBytes(0, decryptedText.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/NetworkFunctions.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/NetworkFunctions.java
index fcbd39f..58043cd 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/NetworkFunctions.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/NetworkFunctions.java
@@ -117,10 +117,11 @@
         org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString);
         String outputValue = utils.getInfo().getBroadcastAddress();
 
+        byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
         out.buffer = buffer;
         out.start = 0;
-        out.end = outputValue.getBytes().length;
-        buffer.setBytes(0, outputValue.getBytes());
+        out.end = output.length;
+        buffer.setBytes(0, output);
         out.isSet = 1;
       } catch (IllegalArgumentException e) {
         // return null is case of invalid input
@@ -153,10 +154,11 @@
         org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString);
         String outputValue = utils.getInfo().getNetmask();
 
+        byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
         out.buffer = buffer;
         out.start = 0;
-        out.end = outputValue.getBytes().length;
-        buffer.setBytes(0, outputValue.getBytes());
+        out.end = output.length;
+        buffer.setBytes(0, output);
         out.isSet = 1;
       } catch (IllegalArgumentException e) {
         // return null is case of invalid input
@@ -189,10 +191,11 @@
         org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString);
         String outputValue = utils.getInfo().getLowAddress();
 
+        byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
         out.buffer = buffer;
         out.start = 0;
-        out.end = outputValue.getBytes().length;
-        buffer.setBytes(0, outputValue.getBytes());
+        out.end = output.length;
+        buffer.setBytes(0, output);
         out.isSet = 1;
       } catch (IllegalArgumentException e) {
         // return null is case of invalid input
@@ -225,10 +228,11 @@
         org.apache.commons.net.util.SubnetUtils utils = new org.apache.commons.net.util.SubnetUtils(cidrString);
         String outputValue = utils.getInfo().getHighAddress();
 
+        byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
         out.buffer = buffer;
         out.start = 0;
-        out.end = outputValue.getBytes().length;
-        buffer.setBytes(0, outputValue.getBytes());
+        out.end = output.length;
+        buffer.setBytes(0, output);
         out.isSet = 1;
       } catch (IllegalArgumentException e) {
         // return null is case of invalid input
@@ -264,10 +268,11 @@
       } catch (Exception e) {
         // do nothing
       }
+      byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       outputString.buffer = buffer;
       outputString.start = 0;
-      outputString.end = outputValue.getBytes().length;
-      buffer.setBytes(0, outputValue.getBytes());
+      outputString.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
 
@@ -299,10 +304,11 @@
       } catch (Exception e) {
         // do nothing
       }
+      byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       outputString.buffer = buffer;
       outputString.start = 0;
-      outputString.end = outputValue.getBytes().length;
-      buffer.setBytes(0, outputValue.getBytes());
+      outputString.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
 
@@ -337,11 +343,11 @@
         inputInt = inputInt >> 8;
       }
       String outputValue = result.toString();
-
+      byte[] output = outputValue.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputValue.getBytes().length;
-      buffer.setBytes(0, outputValue.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
 
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/PhoneticFunctions.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/PhoneticFunctions.java
index 66ab0da..58b8d0d 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/PhoneticFunctions.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/PhoneticFunctions.java
@@ -56,10 +56,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.Caverphone1().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -91,10 +92,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.Caverphone2().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -130,10 +132,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.ColognePhonetic().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -174,10 +177,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.DaitchMokotoffSoundex().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -208,10 +212,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.MatchRatingApproachEncoder().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -244,10 +249,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.Nysiis().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
 
@@ -278,10 +284,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.RefinedSoundex().encode(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -313,10 +320,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.Soundex().soundex(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
 
@@ -348,10 +356,11 @@
       String input = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(rawInput.start, rawInput.end, rawInput.buffer);
       String outputString = new org.apache.commons.codec.language.Metaphone().metaphone(input);
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
 
   }
@@ -385,10 +394,11 @@
       String outputString = new org.apache.commons.codec.language.DoubleMetaphone().doubleMetaphone(input);
       outputString = outputString == null ? "" : outputString;
 
+      byte[] output = outputString.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer;
       out.start = 0;
-      out.end = outputString.getBytes().length;
-      buffer.setBytes(0, outputString.getBytes());
+      out.end = output.length;
+      buffer.setBytes(0, output);
     }
   }
-}
\ No newline at end of file
+}
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/UserAgentFunctions.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/UserAgentFunctions.java
index 39b7bcc..b2544bb 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/UserAgentFunctions.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/UserAgentFunctions.java
@@ -72,7 +72,7 @@
         org.apache.drill.exec.expr.holders.VarCharHolder rowHolder = new org.apache.drill.exec.expr.holders.VarCharHolder();
         String field = agent.getValue(fieldName);
 
-        byte[] rowStringBytes = field.getBytes();
+        byte[] rowStringBytes = field.getBytes(java.nio.charset.StandardCharsets.UTF_8);
         outBuffer = outBuffer.reallocIfNeeded(rowStringBytes.length);
         outBuffer.setBytes(0, rowStringBytes);
 
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsGeoJSON.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsGeoJSON.java
index 4d01485..5bd471d 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsGeoJSON.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsGeoJSON.java
@@ -51,7 +51,7 @@
         .fromBinary(geomParam.buffer.nioBuffer(geomParam.start, geomParam.end - geomParam.start));
 
     String geoJson = geom.asGeoJson();
-    byte[] geoJsonBytes = geoJson.getBytes();
+    byte[] geoJsonBytes = geoJson.getBytes(java.nio.charset.StandardCharsets.UTF_8);
     int outputSize = geoJsonBytes.length;
 
     buffer = out.buffer = buffer.reallocIfNeeded(outputSize);
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsJson.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsJson.java
index 090c78b..2834488 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsJson.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsJson.java
@@ -51,7 +51,7 @@
       .fromBinary(geomParam.buffer.nioBuffer(geomParam.start, geomParam.end - geomParam.start));
 
     String json = geom.asJson();
-    byte[] jsonBytes = json.getBytes();
+    byte[] jsonBytes = json.getBytes(java.nio.charset.StandardCharsets.UTF_8);
     int outputSize = jsonBytes.length;
 
     buffer = out.buffer = buffer.reallocIfNeeded(outputSize);
diff --git a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsText.java b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsText.java
index f770872..76c6645 100644
--- a/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsText.java
+++ b/contrib/udfs/src/main/java/org/apache/drill/exec/udfs/gis/STAsText.java
@@ -48,10 +48,11 @@
 
     String geomWKT = geom1.asText();
 
-    int outputSize = geomWKT.getBytes().length;
+    byte[] output = geomWKT.getBytes(java.nio.charset.StandardCharsets.UTF_8);
+    int outputSize = output.length;
     buffer = out.buffer = buffer.reallocIfNeeded(outputSize);
     out.start = 0;
     out.end = outputSize;
-    buffer.setBytes(0, geomWKT.getBytes());
+    buffer.setBytes(0, output);
   }
 }
diff --git a/drill-yarn/src/main/java/org/apache/drill/yarn/zk/AMRegistry.java b/drill-yarn/src/main/java/org/apache/drill/yarn/zk/AMRegistry.java
index 9cc95e5..274066d 100644
--- a/drill-yarn/src/main/java/org/apache/drill/yarn/zk/AMRegistry.java
+++ b/drill-yarn/src/main/java/org/apache/drill/yarn/zk/AMRegistry.java
@@ -20,6 +20,8 @@
 import org.apache.zookeeper.CreateMode;
 import org.apache.zookeeper.KeeperException.NodeExistsException;
 
+import java.nio.charset.StandardCharsets;
+
 /**
  * Register this App Master in ZK to prevent duplicates.
  * <p>
@@ -99,7 +101,7 @@
       String content = amHost + ":" + Integer.toString(amPort) + ":" + amAppId;
       try {
         zkCoord.getCurator().create().withMode(CreateMode.EPHEMERAL)
-            .forPath(amPath, content.getBytes("UTF-8"));
+            .forPath(amPath, content.getBytes(StandardCharsets.UTF_8));
       } catch (NodeExistsException e) {
 
         // ZK says that a node exists, which means that another AM is already
@@ -113,7 +115,7 @@
         if (data == null) {
           existing = "Unknown";
         } else {
-          String packed = new String(data, "UTF-8");
+          String packed = new String(data, StandardCharsets.UTF_8);
           String unpacked[] = packed.split(":");
           if (unpacked.length < 3) {
             existing = packed;
diff --git a/exec/java-exec/src/main/codegen/templates/CastDateVarChar.java b/exec/java-exec/src/main/codegen/templates/CastDateVarChar.java
index 5b26be6..f508b3a 100644
--- a/exec/java-exec/src/main/codegen/templates/CastDateVarChar.java
+++ b/exec/java-exec/src/main/codegen/templates/CastDateVarChar.java
@@ -41,11 +41,11 @@
 import org.apache.drill.exec.expr.annotations.Param;
 import org.apache.drill.exec.expr.annotations.Workspace;
 import org.apache.drill.exec.expr.holders.*;
+import org.apache.drill.exec.expr.fn.impl.DateUtility;
 import org.apache.drill.exec.record.RecordBatch;
 import org.joda.time.MutableDateTime;
 import org.joda.time.DateTimeZone;
 import org.joda.time.DateMidnight;
-import org.apache.drill.exec.expr.fn.impl.DateUtility;
 
 /*
  * This class is generated using freemarker and the ${.template_name} template.
@@ -80,8 +80,8 @@
       out.buffer = buffer;
       out.start = 0;
       out.end = Math.min((int)len.value, str.length()); // truncate if target type has length smaller than that of input's string
-      out.buffer.setBytes(0, str.substring(0,out.end).getBytes());
+      out.buffer.setBytes(0, str.substring(0,out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 </#if> <#-- type.major -->
-</#list>
\ No newline at end of file
+</#list>
diff --git a/exec/java-exec/src/main/codegen/templates/CastFunctionsTargetVarLen.java b/exec/java-exec/src/main/codegen/templates/CastFunctionsTargetVarLen.java
index 9228f34..0b1926b 100644
--- a/exec/java-exec/src/main/codegen/templates/CastFunctionsTargetVarLen.java
+++ b/exec/java-exec/src/main/codegen/templates/CastFunctionsTargetVarLen.java
@@ -39,8 +39,8 @@
 import org.apache.drill.exec.expr.annotations.Workspace;
 import org.apache.drill.exec.expr.holders.*;
 import org.apache.drill.exec.record.RecordBatch;
+
 import javax.inject.Inject;
-import io.netty.buffer.DrillBuf;
 
 /*
  * This class is generated using freemarker and the ${.template_name} template.
@@ -66,7 +66,7 @@
     out.buffer = buffer;
     out.start = 0;
     out.end = Math.min((int)len.value, istr.length()); // truncate if target type has length smaller than that of input's string
-    out.buffer.setBytes(0, istr.substring(0,out.end).getBytes());      
+    out.buffer.setBytes(0, istr.substring(0,out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 
diff --git a/exec/java-exec/src/main/codegen/templates/CastIntervalVarChar.java b/exec/java-exec/src/main/codegen/templates/CastIntervalVarChar.java
index 92617c0..c54e706 100644
--- a/exec/java-exec/src/main/codegen/templates/CastIntervalVarChar.java
+++ b/exec/java-exec/src/main/codegen/templates/CastIntervalVarChar.java
@@ -96,7 +96,7 @@
       out.buffer = buffer;
       out.start = 0;
       out.end = Math.min((int)len.value, str.length()); // truncate if target type has length smaller than that of input's string
-      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes());
+      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 
@@ -153,7 +153,7 @@
       out.buffer = buffer;
       out.start = 0;
       out.end = Math.min((int)len.value, str.length()); // truncate if target type has length smaller than that of input's string
-      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes());
+      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 
@@ -228,8 +228,8 @@
       out.buffer = buffer;
       out.start = 0;
       out.end = Math.min((int)len.value, str.length()); // truncate if target type has length smaller than that of input's string
-      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes());
+      out.buffer.setBytes(0, String.valueOf(str.substring(0,out.end)).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 </#if> <#-- type.major -->
-</#list>
\ No newline at end of file
+</#list>
diff --git a/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/DateToCharFunctions.java b/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/DateToCharFunctions.java
index 8bfe0a7..f7d1ef1 100644
--- a/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/DateToCharFunctions.java
+++ b/exec/java-exec/src/main/codegen/templates/DateIntervalFunctionTemplates/DateToCharFunctions.java
@@ -76,7 +76,7 @@
         out.buffer = buffer;
         out.start = 0;
         out.end = Math.min(100, str.length()); // truncate if target type has length smaller than that of input's string
-        out.buffer.setBytes(0, str.substring(0,out.end).getBytes());
+        out.buffer.setBytes(0, str.substring(0,out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
     }
 }
-</#list>
\ No newline at end of file
+</#list>
diff --git a/exec/java-exec/src/main/codegen/templates/Decimal/CastDecimalVarchar.java b/exec/java-exec/src/main/codegen/templates/Decimal/CastDecimalVarchar.java
index 8a01b03..fc68663 100644
--- a/exec/java-exec/src/main/codegen/templates/Decimal/CastDecimalVarchar.java
+++ b/exec/java-exec/src/main/codegen/templates/Decimal/CastDecimalVarchar.java
@@ -68,7 +68,7 @@
     out.start = 0;
     out.end = Math.min((int) len.value, str.length());
     out.buffer = buffer = buffer.reallocIfNeeded((int) out.end);
-    out.buffer.setBytes(0, str.substring(0, out.end).getBytes());
+    out.buffer.setBytes(0, str.substring(0, out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 </#if> <#-- type.major -->
diff --git a/exec/java-exec/src/main/codegen/templates/Decimal/DecimalAggrTypeFunctions1.java b/exec/java-exec/src/main/codegen/templates/Decimal/DecimalAggrTypeFunctions1.java
index c5e8f6b..9c82804 100644
--- a/exec/java-exec/src/main/codegen/templates/Decimal/DecimalAggrTypeFunctions1.java
+++ b/exec/java-exec/src/main/codegen/templates/Decimal/DecimalAggrTypeFunctions1.java
@@ -39,12 +39,12 @@
 import org.apache.drill.exec.expr.annotations.Output;
 import org.apache.drill.exec.expr.annotations.Param;
 import org.apache.drill.exec.expr.annotations.Workspace;
+import org.apache.drill.exec.expr.holders.*;
+import org.apache.drill.exec.record.RecordBatch;
 import org.apache.drill.exec.vector.complex.writer.*;
 import org.apache.drill.exec.vector.complex.writer.BaseWriter.*;
 import javax.inject.Inject;
 import io.netty.buffer.DrillBuf;
-import org.apache.drill.exec.expr.holders.*;
-import org.apache.drill.exec.record.RecordBatch;
 import io.netty.buffer.ByteBuf;
 
 /*
diff --git a/exec/java-exec/src/main/codegen/templates/DirectoryExplorers.java b/exec/java-exec/src/main/codegen/templates/DirectoryExplorers.java
index 9c87f00..6d735e1 100644
--- a/exec/java-exec/src/main/codegen/templates/DirectoryExplorers.java
+++ b/exec/java-exec/src/main/codegen/templates/DirectoryExplorers.java
@@ -117,10 +117,10 @@
       }
       String[] subPartitionParts = subPartitionStr.split("/");
       subPartitionStr = subPartitionParts[subPartitionParts.length - 1];
-      byte[] result = subPartitionStr.getBytes();
+      byte[] result = subPartitionStr.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       out.buffer = buffer = buffer.reallocIfNeeded(result.length);
 
-      out.buffer.setBytes(0, subPartitionStr.getBytes(), 0, result.length);
+      out.buffer.setBytes(0, subPartitionStr.getBytes(java.nio.charset.StandardCharsets.UTF_8), 0, result.length);
       out.start = 0;
       out.end = result.length;
     }
diff --git a/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java b/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
index b192be3..ca21fff 100644
--- a/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
+++ b/exec/java-exec/src/main/codegen/templates/NumericToCharFunctions.java
@@ -63,7 +63,7 @@
     buffer = buffer.reallocIfNeeded(100);
     byte[] buf = new byte[right.end - right.start];
     right.buffer.getBytes(right.start, buf, 0, right.end - right.start);
-    String inputFormat = new String(buf);
+    String inputFormat = new String(buf, java.nio.charset.StandardCharsets.UTF_8);
     outputFormat = new java.text.DecimalFormat(inputFormat);
   }
 
@@ -77,7 +77,7 @@
     out.buffer = buffer;
     out.start = 0;
     out.end = Math.min(100, str.length()); // truncate if target type has length smaller than that of input's string
-    out.buffer.setBytes(0, str.substring(0, out.end).getBytes());
+    out.buffer.setBytes(0, str.substring(0, out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
   }
 }
 </#list>
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CastVarCharVar16Char.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CastVarCharVar16Char.java
index 1a929af..5f2245e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CastVarCharVar16Char.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/CastVarCharVar16Char.java
@@ -45,7 +45,7 @@
 
   @Override
   public void setup() {
-    charset = java.nio.charset.Charset.forName("UTF-16");
+    charset = java.nio.charset.StandardCharsets.UTF_16;
   }
 
   @Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ContextFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ContextFunctions.java
index 590ab7d..00cfe4c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ContextFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ContextFunctions.java
@@ -43,7 +43,7 @@
 
     @Override
     public void setup() {
-      final byte[] queryUserNameBytes = contextInfo.getQueryUser().getBytes();
+      final byte[] queryUserNameBytes = contextInfo.getQueryUser().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buffer = buffer.reallocIfNeeded(queryUserNameBytes.length);
       queryUserBytesLength = queryUserNameBytes.length;
       buffer.setBytes(0, queryUserNameBytes);
@@ -70,7 +70,7 @@
 
     @Override
     public void setup() {
-      final byte[] currentSchemaBytes = contextInfo.getCurrentDefaultSchema().getBytes();
+      final byte[] currentSchemaBytes = contextInfo.getCurrentDefaultSchema().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buffer = buffer.reallocIfNeeded(currentSchemaBytes.length);
       currentSchemaBytesLength= currentSchemaBytes.length;
       buffer.setBytes(0, currentSchemaBytes);
@@ -97,7 +97,7 @@
 
     @Override
     public void setup() {
-        final byte[] sessionIdBytes = contextInfo.getSessionId().getBytes();
+        final byte[] sessionIdBytes = contextInfo.getSessionId().getBytes(java.nio.charset.StandardCharsets.UTF_8);
         buffer = buffer.reallocIfNeeded(sessionIdBytes.length);
         sessionIdBytesLength = sessionIdBytes.length;
         buffer.setBytes(0, sessionIdBytes);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/DateTypeFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/DateTypeFunctions.java
index 2671b8c..f44990d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/DateTypeFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/DateTypeFunctions.java
@@ -319,7 +319,7 @@
       out.start = 0;
       out.end = Math.min(100, str.length()); // truncate if target type has length smaller than that of input's
                           // string
-      out.buffer.setBytes(0, str.substring(0, out.end).getBytes());
+      out.buffer.setBytes(0, str.substring(0, out.end).getBytes(java.nio.charset.StandardCharsets.UTF_8));
     }
   }
 
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParentPathFunction.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParentPathFunction.java
index 7ee8b47..7e5aa96 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParentPathFunction.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParentPathFunction.java
@@ -44,7 +44,7 @@
   public void eval() {
     org.apache.hadoop.fs.Path path =
         new org.apache.hadoop.fs.Path(org.apache.drill.common.util.DrillStringUtils.toBinaryString(input.buffer, input.start, input.end));
-    byte[] bytes = path.getParent().toUri().getPath().getBytes();
+    byte[] bytes = path.getParent().toUri().getPath().getBytes(java.nio.charset.StandardCharsets.UTF_8);
 
     buf = buf.reallocIfNeeded(bytes.length);
     buf.setBytes(0, bytes);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseQueryFunction.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseQueryFunction.java
index 2f78840..77d0bbf 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseQueryFunction.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseQueryFunction.java
@@ -95,7 +95,7 @@
           continue;
         }
 
-        byte[] valueBytes = keyValue[1].getBytes();
+        byte[] valueBytes = keyValue[1].getBytes(java.nio.charset.StandardCharsets.UTF_8);
         outBuffer = outBuffer.reallocIfNeeded(valueBytes.length);
         outBuffer.setBytes(0, valueBytes);
 
@@ -169,7 +169,7 @@
           continue;
         }
 
-        byte[] valueBytes = keyValue[1].getBytes();
+        byte[] valueBytes = keyValue[1].getBytes(java.nio.charset.StandardCharsets.UTF_8);
         outBuffer = outBuffer.reallocIfNeeded(valueBytes.length);
         outBuffer.setBytes(0, valueBytes);
 
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseUrlFunction.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseUrlFunction.java
index e631de1..a11523f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseUrlFunction.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/ParseUrlFunction.java
@@ -89,7 +89,7 @@
         for (java.util.Map.Entry<String, String> entry : urlComponents.entrySet()) {
           if (entry.getValue() != null) {
             // Explicit casting to String is required because of Janino's limitations regarding generics.
-            byte[] protocolBytes = ((String) entry.getValue()).getBytes();
+            byte[] protocolBytes = ((String) entry.getValue()).getBytes(java.nio.charset.StandardCharsets.UTF_8);
             outBuffer = outBuffer.reallocIfNeeded(protocolBytes.length);
             outBuffer.setBytes(0, protocolBytes);
             rowHolder.start = 0;
@@ -164,7 +164,7 @@
         for (java.util.Map.Entry<String, String> entry : urlComponents.entrySet()) {
           if (entry.getValue() != null) {
             // Explicit casting to String is required because of Janino's limitations regarding generics.
-            byte[] protocolBytes = ((String) entry.getValue()).getBytes();
+            byte[] protocolBytes = ((String) entry.getValue()).getBytes(java.nio.charset.StandardCharsets.UTF_8);
             outBuffer = outBuffer.reallocIfNeeded(protocolBytes.length);
             outBuffer.setBytes(0, protocolBytes);
             rowHolder.start = 0;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SchemaFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SchemaFunctions.java
index 78201dd..7f747bb 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SchemaFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SchemaFunctions.java
@@ -110,7 +110,7 @@
         schemaBuilder.add((org.apache.drill.exec.record.MaterializedField) materializedField);
       }
 
-      byte[] type = schemaBuilder.build().jsonString().getBytes();
+      byte[] type = schemaBuilder.build().jsonString().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
@@ -173,7 +173,7 @@
       org.apache.drill.exec.record.metadata.TupleMetadata resolvedSchema =
           (org.apache.drill.exec.record.metadata.TupleMetadata) schemaHolder.obj;
 
-      byte[] type = resolvedSchema.jsonString().getBytes();
+      byte[] type = resolvedSchema.jsonString().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
@@ -227,7 +227,7 @@
       org.apache.drill.exec.record.metadata.TupleMetadata resolvedSchema =
           (org.apache.drill.exec.record.metadata.TupleMetadata) schemaHolder.obj;
 
-      byte[] type = resolvedSchema.jsonString().getBytes();
+      byte[] type = resolvedSchema.jsonString().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SimpleCastFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SimpleCastFunctions.java
index a820edb..c723a65 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SimpleCastFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/SimpleCastFunctions.java
@@ -66,7 +66,7 @@
     public void setup() {}
 
     public void eval() {
-      byte[] outB = org.apache.drill.common.types.BooleanType.get(String.valueOf(in.value)).name().toLowerCase().getBytes();
+      byte[] outB = org.apache.drill.common.types.BooleanType.get(String.valueOf(in.value)).name().toLowerCase().getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buffer.setBytes(0, outB);
       out.buffer = buffer;
       out.start = 0;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctions.java
index 9a8446f..5b645f2 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/StringFunctions.java
@@ -248,7 +248,7 @@
               result = matcher.find();
           } while (result);
           matcher.appendTail(sb);
-          final byte [] bytea = sb.toString().getBytes(java.nio.charset.Charset.forName("UTF-8"));
+          final byte [] bytea = sb.toString().getBytes(java.nio.charset.StandardCharsets.UTF_8);
           out.buffer = buffer = buffer.reallocIfNeeded(bytea.length);
           out.buffer.setBytes(out.start, bytea);
           out.end = bytea.length;
@@ -1720,7 +1720,7 @@
 
     @Override
     public void setup() {
-      charset = java.nio.charset.Charset.forName("UTF-8");
+      charset = java.nio.charset.StandardCharsets.UTF_8;
     }
 
     @Override
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TDigestFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TDigestFunctions.java
index f8f734c..0e092fc 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TDigestFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TDigestFunctions.java
@@ -1106,7 +1106,7 @@
         com.tdunning.math.stats.MergingDigest tdigest = (com.tdunning.math.stats.MergingDigest) work.obj;
         try {
           if (in.isSet != 0) {
-            byte[] buf = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(in.start, in.end, in.buffer).getBytes();
+            byte[] buf = org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers.toStringFromUTF8(in.start, in.end, in.buffer).getBytes(java.nio.charset.StandardCharsets.UTF_8);
             com.tdunning.math.stats.MergingDigest other =
               com.tdunning.math.stats.MergingDigest.fromBytes(java.nio.ByteBuffer.wrap(buf));
             tdigest.add(other);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TypeFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TypeFunctions.java
index b820c1b..743ec99 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TypeFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/TypeFunctions.java
@@ -54,7 +54,7 @@
     public void eval() {
 
       String typeName = org.apache.drill.common.types.Types.getExtendedSqlTypeName(input.getType());
-      byte[] type = typeName.getBytes();
+      byte[] type = typeName.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
@@ -81,7 +81,7 @@
     @Override
     public void eval() {
       String typeName = input.getVectorType().name();
-      byte[] type = typeName.getBytes();
+      byte[] type = typeName.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
@@ -109,7 +109,7 @@
     public void eval() {
       String typeName = org.apache.drill.common.types.Types.getSqlModeName(
           input.getType());
-      byte[] type = typeName.getBytes();
+      byte[] type = typeName.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/UnionFunctions.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/UnionFunctions.java
index a5fb217..23c5289 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/UnionFunctions.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/impl/UnionFunctions.java
@@ -146,7 +146,7 @@
     @Override
     public void eval() {
       String typeName = input.getTypeString();
-      byte[] type = typeName.getBytes();
+      byte[] type = typeName.getBytes(java.nio.charset.StandardCharsets.UTF_8);
       buf = buf.reallocIfNeeded(type.length);
       buf.setBytes(0, type);
       out.buffer = buf;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
index ef80718..6ffe451 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec.physical.impl;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
@@ -566,7 +567,7 @@
           String val;
           if ((val = entry.getValue()) != null) {
             AllocationHelper.allocate(v, recordCount, val.length());
-            final byte[] bytes = val.getBytes();
+            final byte[] bytes = val.getBytes(StandardCharsets.UTF_8);
             for (int j = 0; j < recordCount; j++) {
               v.getMutator().setSafe(j, bytes, 0, bytes.length);
             }
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/StatisticsWriterRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/StatisticsWriterRecordBatch.java
index daa5e33..9e2862b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/StatisticsWriterRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/StatisticsWriterRecordBatch.java
@@ -41,6 +41,7 @@
 import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 public class StatisticsWriterRecordBatch extends AbstractRecordBatch<Writer> {
   private static final Logger logger = LoggerFactory.getLogger(StatisticsWriterRecordBatch.class);
@@ -150,7 +151,7 @@
         container.getValueVectorId(SchemaPath.getSimplePath("Number of records written")).getFieldIds())
         .getValueVector();
     AllocationHelper.allocate(summaryVector, 1, 8);
-    fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes());
+    fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes(StandardCharsets.UTF_8));
     fragmentIdVector.getMutator().setValueCount(1);
     summaryVector.getMutator().setSafe(0, counter);
     summaryVector.getMutator().setValueCount(1);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/WriterRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/WriterRecordBatch.java
index 307d5b2..e3eb8dd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/WriterRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/WriterRecordBatch.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.physical.impl;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.expression.SchemaPath;
@@ -144,7 +145,7 @@
             container.getValueVectorId(SchemaPath.getSimplePath("Number of records written")).getFieldIds())
           .getValueVector();
     AllocationHelper.allocate(summaryVector, 1, 8);
-    fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes());
+    fragmentIdVector.getMutator().setSafe(0, fragmentUniqueId.getBytes(StandardCharsets.UTF_8));
     fragmentIdVector.getMutator().setValueCount(1);
     summaryVector.getMutator().setSafe(0, counter);
     summaryVector.getMutator().setValueCount(1);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataControllerBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataControllerBatch.java
index dce5822..2fb46ed 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataControllerBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataControllerBatch.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.physical.impl.metadata;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.HashMap;
@@ -251,7 +252,7 @@
         String.format("Collected / refreshed metadata for table [%s.%s.%s]",
             popConfig.getContext().tableInfo().storagePlugin(),
             popConfig.getContext().tableInfo().workspace(),
-            popConfig.getContext().tableInfo().name()).getBytes());
+            popConfig.getContext().tableInfo().name()).getBytes(StandardCharsets.UTF_8));
 
     container.buildSchema(BatchSchema.SelectionVectorMode.NONE);
     container.setValueCount(1);
@@ -670,7 +671,7 @@
     switch (objectReader.schema().type()) {
       case VARBINARY:
       case FIXEDBINARY:
-        return new String(objectReader.scalar().getBytes());
+        return new String(objectReader.scalar().getBytes(), StandardCharsets.UTF_8);
       default:
         return objectReader.getObject();
     }
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataHandlerBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataHandlerBatch.java
index 6280364..855777b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataHandlerBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/metadata/MetadataHandlerBatch.java
@@ -57,6 +57,7 @@
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
@@ -418,7 +419,7 @@
         MaterializedField.create(MetastoreAnalyzeConstants.METADATA_TYPE, Types.required(MinorType.VARCHAR)));
     metadataTypeVector.allocateNew();
     for (int i = 0; i < incoming.getRecordCount(); i++) {
-      metadataTypeVector.getMutator().setSafe(i, metadataType.name().getBytes());
+      metadataTypeVector.getMutator().setSafe(i, metadataType.name().getBytes(StandardCharsets.UTF_8));
     }
 
     metadataTypeVector.getMutator().setValueCount(incoming.getRecordCount());
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/statistics/ColumnMergedStatistic.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/statistics/ColumnMergedStatistic.java
index 7eb3bf3..a89f349 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/statistics/ColumnMergedStatistic.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/statistics/ColumnMergedStatistic.java
@@ -23,6 +23,8 @@
 import org.apache.drill.exec.vector.complex.MapVector;
 import org.apache.drill.metastore.statistics.Statistic;
 
+import java.nio.charset.StandardCharsets;
+
 public class ColumnMergedStatistic extends AbstractMergedStatistic {
 
   public ColumnMergedStatistic () {
@@ -61,7 +63,7 @@
       VarCharVector vv = (VarCharVector) outMapCol;
       vv.allocateNewSafe();
       // Set column name in ValueVector
-      vv.getMutator().setSafe(0, colName.getBytes(), 0, colName.length());
+      vv.getMutator().setSafe(0, colName.getBytes(StandardCharsets.UTF_8), 0, colName.length());
     }
     // Now moving to COMPLETE state
     state = State.COMPLETE;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/values/ValuesBatchCreator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/values/ValuesBatchCreator.java
index 1f278c9..9b5bc62 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/values/ValuesBatchCreator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/values/ValuesBatchCreator.java
@@ -19,6 +19,7 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
 import java.util.Collections;
 import java.util.List;
 
@@ -61,7 +62,7 @@
     builder.providedSchema(subScan.getSchema());
 
     ManagedScanFramework.ReaderFactory readerFactory = new BasicScanFactory(Collections.singletonList(
-      getRecordReader(new ByteArrayInputStream(subScan.getContent().getBytes()))).iterator());
+      getRecordReader(new ByteArrayInputStream(subScan.getContent().getBytes(StandardCharsets.UTF_8)))).iterator());
     builder.setReaderFactory(readerFactory);
     builder.nullType(Types.optional(TypeProtos.MinorType.VARCHAR));
     return builder;
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/ParquetPartitionDescriptor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/ParquetPartitionDescriptor.java
index c52d214..c3a032b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/ParquetPartitionDescriptor.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/ParquetPartitionDescriptor.java
@@ -55,6 +55,7 @@
 import org.apache.hadoop.fs.Path;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.BitSet;
 import java.util.LinkedList;
@@ -401,7 +402,7 @@
   private byte[] getBytes(TypeProtos.MinorType type, Object source) {
     byte[] bytes;
     if (source instanceof String) {
-      bytes = ((String) source).getBytes();
+      bytes = ((String) source).getBytes(StandardCharsets.UTF_8);
     } else if (source instanceof byte[]) {
       bytes = (byte[]) source;
     } else {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java
index 391d16e..95c4d8b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/rest/profile/ProfileResources.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec.server.rest.profile;
 
+import java.nio.charset.StandardCharsets;
 import java.text.SimpleDateFormat;
 import java.util.Collections;
 import java.util.Date;
@@ -512,7 +513,7 @@
   public Viewable viewProfile(@FormDataParam("profileData") String content) {
     try {
       QueryProfile profile = work.getContext().getProfileStoreContext()
-        .getProfileStoreConfig().getSerializer().deserialize(content.getBytes());
+        .getProfileStoreConfig().getSerializer().deserialize(content.getBytes(StandardCharsets.UTF_8));
       PROFILE_CACHE.put(profile.getQueryId(), content);
       ProfileWrapper wrapper = new ProfileWrapper(profile,
         work.getContext().getConfig(), request);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/reader/TextParsingSettings.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/reader/TextParsingSettings.java
index bf0e267..0a28b1f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/reader/TextParsingSettings.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/text/reader/TextParsingSettings.java
@@ -22,6 +22,8 @@
 import org.apache.drill.exec.store.easy.text.TextFormatConfig;
 import org.apache.drill.shaded.guava.com.google.common.base.Charsets;
 
+import java.nio.charset.StandardCharsets;
+
 public class TextParsingSettings {
 
   private final byte quote;
@@ -147,7 +149,7 @@
     if (value == null || value.isEmpty()) {
       return configValue;
     }
-    return value.getBytes();
+    return value.getBytes(StandardCharsets.UTF_8);
   }
 
   public byte getComment() {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
index ef44340..8f47b58 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetReaderUtility.java
@@ -53,6 +53,7 @@
 import org.apache.parquet.io.api.Binary;
 import org.joda.time.DateTimeZone;
 
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -404,8 +405,8 @@
       Object minValue = columnMetadata.getMinValue();
       Object maxValue = columnMetadata.getMaxValue();
       if (minValue instanceof String && maxValue instanceof String) {
-        minBytes = ((String) minValue).getBytes();
-        maxBytes = ((String) maxValue).getBytes();
+        minBytes = ((String) minValue).getBytes(StandardCharsets.UTF_8);
+        maxBytes = ((String) maxValue).getBytes(StandardCharsets.UTF_8);
         if (needsDecoding) {
           minBytes = Base64.decodeBase64(minBytes);
           maxBytes = hasSingleValue ? minBytes : Base64.decodeBase64(maxBytes);
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
index 67a1232..dea7f58 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/ParquetTableMetadataUtils.java
@@ -62,6 +62,7 @@
 
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -378,12 +379,12 @@
     } else if (value instanceof byte[]) {
       return (byte[]) value;
     } else if (value instanceof String) { // value is obtained from metadata cache v2+
-      return ((String) value).getBytes();
+      return ((String) value).getBytes(StandardCharsets.UTF_8);
     } else if (value instanceof Map) { // value is obtained from metadata cache v1
       @SuppressWarnings("unchecked")
       String bytesString = ((Map<String,String>) value).get("bytes");
       if (bytesString != null) {
-        return bytesString.getBytes();
+        return bytesString.getBytes(StandardCharsets.UTF_8);
       }
     } else if (value instanceof Long) {
       return Longs.toByteArray((Long) value);
@@ -437,7 +438,7 @@
     /* else if (value instanceof byte[]) {
       return new BigInteger((byte[]) value).floatValue();
     } else if (value instanceof Binary) {
-      return new BigInteger(((Binary) value).getBytes()).floatValue();
+      return new BigInteger(((Binary) value).getBytes(StandardCharsets.UTF_8)).floatValue();
     }*/
     throw new UnsupportedOperationException(String.format("Cannot obtain Integer using value %s", value));
   }
@@ -452,7 +453,7 @@
     /* else if (value instanceof byte[]) {
       return new BigInteger((byte[]) value).doubleValue();
     } else if (value instanceof Binary) {
-      return new BigInteger(((Binary) value).getBytes()).doubleValue();
+      return new BigInteger(((Binary) value).getBytes(StandardCharsets.UTF_8)).doubleValue();
     }*/
     throw new UnsupportedOperationException(String.format("Cannot obtain Integer using value %s", value));
   }
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V1.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V1.java
index 2e713f2..acc3155 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V1.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V1.java
@@ -26,6 +26,7 @@
 import org.apache.parquet.schema.OriginalType;
 import org.apache.parquet.schema.PrimitiveType;
 
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 import java.util.Map;
 import java.util.Objects;
@@ -263,7 +264,7 @@
     @JsonProperty(value = "min")
     public Object getMin() {
       if (primitiveType == PrimitiveType.PrimitiveTypeName.BINARY && min != null) {
-        return new String(((Binary) min).getBytes());
+        return new String(((Binary) min).getBytes(), StandardCharsets.UTF_8);
       }
       return min;
     }
@@ -271,7 +272,7 @@
     @JsonProperty(value = "max")
     public Object getMax() {
       if (primitiveType == PrimitiveType.PrimitiveTypeName.BINARY && max != null) {
-        return new String(((Binary) max).getBytes());
+        return new String(((Binary) max).getBytes(), StandardCharsets.UTF_8);
       }
       return max;
     }
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V2.java b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V2.java
index 5686fcd..ef750a3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V2.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/store/parquet/metadata/Metadata_V2.java
@@ -28,6 +28,8 @@
 import com.fasterxml.jackson.databind.JsonSerializer;
 import com.fasterxml.jackson.databind.KeyDeserializer;
 import com.fasterxml.jackson.databind.SerializerProvider;
+
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import org.apache.hadoop.fs.Path;
 import org.apache.parquet.io.api.Binary;
@@ -449,7 +451,7 @@
         if (value.mxValue != null) {
           Object val;
           if (value.primitiveType == PrimitiveType.PrimitiveTypeName.BINARY && value.mxValue != null) {
-            val = new String(((Binary) value.mxValue).getBytes());
+            val = new String(((Binary) value.mxValue).getBytes(), StandardCharsets.UTF_8);
           } else {
             val = value.mxValue;
           }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestWriteToDisk.java b/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestWriteToDisk.java
index c6a68b6..3fb97b2 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestWriteToDisk.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/cache/TestWriteToDisk.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.cache;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.drill.exec.physical.rowSet.RowSet;
 import org.apache.drill.exec.physical.rowSet.RowSets;
@@ -69,10 +70,10 @@
         .build();
 
     return fixture.rowSetBuilder(schema)
-        .addRow(0, "ZERO".getBytes())
-        .addRow(1, "ONE".getBytes())
-        .addRow(2, "TWO".getBytes())
-        .addRow(3, "THREE".getBytes())
+        .addRow(0, "ZERO".getBytes(StandardCharsets.UTF_8))
+        .addRow(1, "ONE".getBytes(StandardCharsets.UTF_8))
+        .addRow(2, "TWO".getBytes(StandardCharsets.UTF_8))
+        .addRow(3, "THREE".getBytes(StandardCharsets.UTF_8))
         .build();
   }
 }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEphemeralStore.java b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEphemeralStore.java
index c9ad7a9..94d6845 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEphemeralStore.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEphemeralStore.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.coord.zk;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.curator.RetryPolicy;
 import org.apache.curator.framework.CuratorFramework;
@@ -82,7 +83,7 @@
             if (instance == null) {
               return null;
             }
-            return instance.getBytes();
+            return instance.getBytes(StandardCharsets.UTF_8);
           }
 
           @Override
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEventDispatcher.java b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEventDispatcher.java
index 3f898a1..120e92a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEventDispatcher.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestEventDispatcher.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec.coord.zk;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.curator.framework.recipes.cache.ChildData;
 import org.apache.curator.framework.recipes.cache.PathChildrenCacheEvent;
@@ -34,7 +35,7 @@
 
   private final static String key = "some-key";
   private final static String value = "some-data";
-  private final static byte[] data = "some-data".getBytes();
+  private final static byte[] data = value.getBytes(StandardCharsets.UTF_8);
 
   private ZkEphemeralStore<String> store;
   private EventDispatcher<String> dispatcher;
@@ -53,7 +54,7 @@
         .thenReturn(new InstanceSerializer<String>() {
           @Override
           public byte[] serialize(String instance) throws IOException {
-            return instance.getBytes();
+            return instance.getBytes(StandardCharsets.UTF_8);
           }
 
           @Override
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZKACL.java b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZKACL.java
index 53da4f5..06bec75 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZKACL.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZKACL.java
@@ -40,6 +40,7 @@
 import org.junit.Test;
 import org.junit.experimental.categories.Category;
 
+import java.nio.charset.StandardCharsets;
 import java.util.List;
 
 @Ignore("See DRILL-6823")
@@ -48,14 +49,14 @@
 
   private TestingServer server;
   private final static String cluster_config_znode = "test-cluster_config_znode";
-  private final static byte[] cluster_config_data = "drill-node-1".getBytes();
+  private final static byte[] cluster_config_data = "drill-node-1".getBytes(StandardCharsets.UTF_8);
   private final static String drill_zk_root = "drill-test-drill_zk_root";
   private final static String drill_cluster_name = "test-drillbits";
   private static final String drillClusterPath = "/" + drill_zk_root + "/" + drill_cluster_name;
   private static final RetryPolicy retryPolicy = new RetryNTimes(1, 1000);
 
   private static final String drillUDFName = "test-udfs";
-  private final static byte[] udf_data = "test-udf-1".getBytes();
+  private final static byte[] udf_data = "test-udf-1".getBytes(StandardCharsets.UTF_8);
   private static final String drillUDFPath = "/" + drill_zk_root + "/" + drillUDFName;
   private static ACLProvider aclProviderDelegate;
 
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZookeeperClient.java b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZookeeperClient.java
index fc4bfa1..3502969 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZookeeperClient.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/coord/zk/TestZookeeperClient.java
@@ -17,6 +17,7 @@
  */
 package org.apache.drill.exec.coord.zk;
 
+import java.nio.charset.StandardCharsets;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -51,7 +52,7 @@
   private final static String root = "/test";
   private final static String path = "test-key";
   private final static String abspath = PathUtils.join(root, path);
-  private final static byte[] data = "testing".getBytes();
+  private final static byte[] data = "testing".getBytes(StandardCharsets.UTF_8);
   private final static CreateMode mode = CreateMode.PERSISTENT;
 
   private TestingServer server;
@@ -258,7 +259,7 @@
   @Test
   public void testPutIfAbsentWhenPresent() {
     client.putIfAbsent(path, data);
-    assertEquals("Data should match", new String(data), new String(client.putIfAbsent(path, "new_data".getBytes())));
+    assertEquals("Data should match", new String(data), new String(client.putIfAbsent(path, "new_data".getBytes(StandardCharsets.UTF_8))));
   }
 
 }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
index 292fc41..d34fcb5 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
@@ -82,7 +82,8 @@
         "import org.apache.drill.exec.expr.annotations.Output;",
         "import org.apache.drill.exec.expr.annotations.Param;",
         "import org.apache.drill.exec.expr.holders.VarCharHolder;",
-        "import javax.inject.Inject;"
+        "import javax.inject.Inject;",
+        "import java.nio.charset.StandardCharsets;"
     );
 
     assertEquals("List of imports should match", expectedImports, actualImports);
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestHtpasswdFileUserAuthenticator.java b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestHtpasswdFileUserAuthenticator.java
index 6b6b3ca..b3c0309 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestHtpasswdFileUserAuthenticator.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/rpc/user/security/TestHtpasswdFileUserAuthenticator.java
@@ -28,6 +28,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.util.Arrays;
 import java.util.List;
@@ -42,7 +43,7 @@
 
   private void setupCluster(String passwdContent) throws IOException {
     tempPasswdFile = new File(dirTestWatcher.getTmpDir(), "htpasswd." + System.currentTimeMillis());
-    Files.write(tempPasswdFile.toPath(), passwdContent.getBytes());
+    Files.write(tempPasswdFile.toPath(), passwdContent.getBytes(StandardCharsets.UTF_8));
 
     cluster = ClusterFixture.bareBuilder(dirTestWatcher)
       .clusterSize(3)
@@ -100,7 +101,7 @@
     tryCredentials("bob", "yolo", cluster, false);
 
     String passwdContent2 = "alice:pass2\nbob:yolo\n";
-    Files.write(tempPasswdFile.toPath(), passwdContent2.getBytes());
+    Files.write(tempPasswdFile.toPath(), passwdContent2.getBytes(StandardCharsets.UTF_8));
 
     tryCredentials("alice", "pass1", cluster, false);
     tryCredentials("alice", "pass2", cluster, true);
@@ -109,7 +110,7 @@
 
     // Invalid file is treated as empty
     String passwdContent3 = "invalid file";
-    Files.write(tempPasswdFile.toPath(), passwdContent3.getBytes());
+    Files.write(tempPasswdFile.toPath(), passwdContent3.getBytes(StandardCharsets.UTF_8));
 
     tryCredentials("alice", "pass1", cluster, false);
     tryCredentials("alice", "pass2", cluster, false);
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/server/options/PersistedOptionValueTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/server/options/PersistedOptionValueTest.java
index bf8ae33..04b7bb9 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/server/options/PersistedOptionValueTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/server/options/PersistedOptionValueTest.java
@@ -27,6 +27,7 @@
 import org.junit.Test;
 
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 public class PersistedOptionValueTest extends BaseTest {
   /**
@@ -51,10 +52,10 @@
     String longOptionJson = DrillFileUtils.getResourceAsString(longOptionFile);
     String stringOptionJson = DrillFileUtils.getResourceAsString(stringOptionFile);
 
-    PersistedOptionValue booleanValue = (PersistedOptionValue) serializer.deserialize(booleanOptionJson.getBytes());
-    PersistedOptionValue doubleValue = (PersistedOptionValue) serializer.deserialize(doubleOptionJson.getBytes());
-    PersistedOptionValue longValue = (PersistedOptionValue) serializer.deserialize(longOptionJson.getBytes());
-    PersistedOptionValue stringValue = (PersistedOptionValue) serializer.deserialize(stringOptionJson.getBytes());
+    PersistedOptionValue booleanValue = (PersistedOptionValue) serializer.deserialize(booleanOptionJson.getBytes(StandardCharsets.UTF_8));
+    PersistedOptionValue doubleValue = (PersistedOptionValue) serializer.deserialize(doubleOptionJson.getBytes(StandardCharsets.UTF_8));
+    PersistedOptionValue longValue = (PersistedOptionValue) serializer.deserialize(longOptionJson.getBytes(StandardCharsets.UTF_8));
+    PersistedOptionValue stringValue = (PersistedOptionValue) serializer.deserialize(stringOptionJson.getBytes(StandardCharsets.UTF_8));
 
     PersistedOptionValue expectedBooleanValue = new PersistedOptionValue("true");
     PersistedOptionValue expectedDoubleValue = new PersistedOptionValue("1.5");
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/dfs/TestCompressedFiles.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/dfs/TestCompressedFiles.java
index fd1bf9e..9d13534 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/dfs/TestCompressedFiles.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/dfs/TestCompressedFiles.java
@@ -37,6 +37,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.charset.StandardCharsets;
 
 import static org.junit.Assert.assertNotNull;
 
@@ -103,7 +104,7 @@
     CompressionCodec codec = factory.getCodecByName(codecName);
     assertNotNull(codecName + " is not found", codec);
     Path outFile = new Path(dirTestWatcher.getRootDir().getAbsolutePath(), fileName);
-    try (InputStream inputStream = new ByteArrayInputStream(data.getBytes());
+    try (InputStream inputStream = new ByteArrayInputStream(data.getBytes(StandardCharsets.UTF_8));
          OutputStream outputStream = codec.createOutputStream(fs.create(outFile))) {
       IOUtils.copyBytes(inputStream, outputStream, fs.getConf(), false);
     }
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedArrays.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedArrays.java
index ced6463..18ca861 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedArrays.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedArrays.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.nio.charset.StandardCharsets;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -249,7 +250,7 @@
     TupleMetadata expectedSchema = new SchemaBuilder()
         .addArray("a", MinorType.VARBINARY)
         .build();
-    byte[] bytes = "Drill".getBytes();
+    byte[] bytes = "Drill".getBytes(StandardCharsets.UTF_8);
     RowSet expected = fixture.rowSetBuilder(expectedSchema)
         .addSingleCol(binArray(bytes, bytes, bytes, new byte[] { }))
         .addSingleCol(binArray())
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedTypes.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedTypes.java
index ae69b46..0f40175 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedTypes.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedTypes.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.nio.charset.StandardCharsets;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -243,7 +244,7 @@
     TupleMetadata expectedSchema = new SchemaBuilder()
         .addNullable("a", MinorType.VARBINARY)
         .build();
-    byte[] bytes = "Drill".getBytes();
+    byte[] bytes = "Drill".getBytes(StandardCharsets.UTF_8);
     RowSet expected = fixture.rowSetBuilder(expectedSchema)
         .addRow(bytes)
         .addRow(bytes)
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedWithSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedWithSchema.java
index 450374d..2835b21 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedWithSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestExtendedWithSchema.java
@@ -22,6 +22,7 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertNull;
 
+import java.nio.charset.StandardCharsets;
 import java.time.Instant;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
@@ -438,7 +439,7 @@
     RowSet results = loader.next();
     assertNotNull(results);
 
-    byte[] bytes = "Drill".getBytes();
+    byte[] bytes = "Drill".getBytes(StandardCharsets.UTF_8);
     RowSet expected = fixture.rowSetBuilder(providedSchema)
         .addRow(bytes, bytes, bytes,  null, bytes, bytes, bytes, bytes)
         .addRow( null, bytes, bytes, bytes, bytes, bytes, bytes, bytes)
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestScalars.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestScalars.java
index 7f7a097..8dff4ca 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestScalars.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/json/loader/TestScalars.java
@@ -23,6 +23,7 @@
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.nio.charset.StandardCharsets;
 import java.time.Duration;
 import java.time.LocalDateTime;
 
@@ -678,7 +679,7 @@
     RowSet results = loader.next();
     assertNotNull(results);
 
-    byte[] bytes = "Drill".getBytes();
+    byte[] bytes = "Drill".getBytes(StandardCharsets.UTF_8);
     RowSet expected = fixture.rowSetBuilder(schema)
         .addSingleCol(null)
         .addSingleCol(bytes)
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/text/compliant/TestCsvHeader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/text/compliant/TestCsvHeader.java
index d4ae1ea..31758e4 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/text/compliant/TestCsvHeader.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/easy/text/compliant/TestCsvHeader.java
@@ -20,6 +20,7 @@
 import java.io.BufferedOutputStream;
 import java.io.File;
 import java.io.FileOutputStream;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 import java.util.List;
 
@@ -153,9 +154,9 @@
   public void testEmptyFinalColumn() throws Exception {
     File table_dir = dirTestWatcher.makeTestTmpSubDir(Paths.get("emptyFinalColumn"));
     BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "a.csvh")));
-    os.write("field1,field2\n".getBytes());
+    os.write("field1,field2\n".getBytes(StandardCharsets.UTF_8));
     for (int i = 0; i < 10000; i++) {
-      os.write("a,\n".getBytes());
+      os.write("a,\n".getBytes(StandardCharsets.UTF_8));
     }
     os.flush();
     os.close();
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
index 4ec019b..f150978 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/json/TestJsonReader.java
@@ -26,6 +26,7 @@
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.FileWriter;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 
 import org.apache.drill.categories.RowSetTest;
@@ -320,8 +321,8 @@
     File table_dir = dirTestWatcher.makeTestTmpSubDir(Paths.get("multi_batch"));
     BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "a.json")));
     for (int i = 0; i < 10000; i++) {
-      os.write("{ type : \"map\", data : { a : 1 } }\n".getBytes());
-      os.write("{ type : \"bigint\", data : 1 }\n".getBytes());
+      os.write("{ type : \"map\", data : { a : 1 } }\n".getBytes(StandardCharsets.UTF_8));
+      os.write("{ type : \"bigint\", data : 1 }\n".getBytes(StandardCharsets.UTF_8));
     }
     os.flush();
     os.close();
@@ -348,13 +349,13 @@
     File table_dir = dirTestWatcher.makeTestTmpSubDir(Paths.get("multi_file"));
     BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "a.json")));
     for (int i = 0; i < 10000; i++) {
-      os.write("{ type : \"map\", data : { a : 1 } }\n".getBytes());
+      os.write("{ type : \"map\", data : { a : 1 } }\n".getBytes(StandardCharsets.UTF_8));
     }
     os.flush();
     os.close();
     os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "b.json")));
     for (int i = 0; i < 10000; i++) {
-      os.write("{ type : \"bigint\", data : 1 }\n".getBytes());
+      os.write("{ type : \"bigint\", data : 1 }\n".getBytes(StandardCharsets.UTF_8));
     }
     os.flush();
     os.close();
@@ -381,13 +382,13 @@
     File table_dir = dirTestWatcher.makeTestTmpSubDir(Paths.get("drill_4032"));
     table_dir.mkdir();
     BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "a.json")));
-    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes());
-    os.write("{\"col1\": \"val1\",\"col2\": {\"col3\":\"abc\", \"col4\":\"xyz\"}}".getBytes());
+    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes(StandardCharsets.UTF_8));
+    os.write("{\"col1\": \"val1\",\"col2\": {\"col3\":\"abc\", \"col4\":\"xyz\"}}".getBytes(StandardCharsets.UTF_8));
     os.flush();
     os.close();
     os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "b.json")));
-    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes());
-    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes());
+    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes(StandardCharsets.UTF_8));
+    os.write("{\"col1\": \"val1\",\"col2\": null}".getBytes(StandardCharsets.UTF_8));
     os.flush();
     os.close();
     runBoth(() -> testNoResult("select t.col2.col3 from dfs.tmp.drill_4032 t"));
@@ -400,10 +401,10 @@
     BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream(new File(table_dir, "mostlynulls.json")));
     // Create an entire batch of null values for 3 columns
     for (int i = 0; i < JSONRecordReader.DEFAULT_ROWS_PER_BATCH; i++) {
-      os.write("{\"a\": null, \"b\": null, \"c\": null}".getBytes());
+      os.write("{\"a\": null, \"b\": null, \"c\": null}".getBytes(StandardCharsets.UTF_8));
     }
     // Add a row with {bigint,  float, string} values
-    os.write("{\"a\": 123456789123, \"b\": 99.999, \"c\": \"Hello World\"}".getBytes());
+    os.write("{\"a\": 123456789123, \"b\": 99.999, \"c\": \"Hello World\"}".getBytes(StandardCharsets.UTF_8));
     os.flush();
     os.close();
 
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/sequencefile/TestSequenceFileReader.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/sequencefile/TestSequenceFileReader.java
index f989a3f..77c8040 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/sequencefile/TestSequenceFileReader.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/sequencefile/TestSequenceFileReader.java
@@ -21,6 +21,7 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.DataOutputStream;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 
 import org.apache.drill.categories.RowSetTest;
@@ -60,8 +61,8 @@
         .buildSchema();
 
     RowSet expected = new RowSetBuilder(client.allocator(), schema)
-        .addRow("key1".getBytes(), "value1".getBytes())
-        .addRow("key2".getBytes(), "value2".getBytes())
+        .addRow("key1".getBytes(StandardCharsets.UTF_8), "value1".getBytes(StandardCharsets.UTF_8))
+        .addRow("key2".getBytes(StandardCharsets.UTF_8), "value2".getBytes(StandardCharsets.UTF_8))
         .build();
 
     assertEquals(2, sets.rowCount());
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/store/sys/TestPStoreProviders.java b/exec/java-exec/src/test/java/org/apache/drill/exec/store/sys/TestPStoreProviders.java
index 913928b..a90d947 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/store/sys/TestPStoreProviders.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/store/sys/TestPStoreProviders.java
@@ -43,6 +43,7 @@
 import org.junit.experimental.categories.Category;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 
 import static org.junit.Assert.assertTrue;
 
@@ -128,7 +129,7 @@
         PathUtils.join("/", storeConfig.getName()), CreateMode.PERSISTENT)) {
         zkClient.start();
         String oldOptionJson = DrillFileUtils.getResourceAsString("/options/old_booleanopt.json");
-        zkClient.put(oldName, oldOptionJson.getBytes(), null);
+        zkClient.put(oldName, oldOptionJson.getBytes(StandardCharsets.UTF_8), null);
       }
 
       try (ZookeeperPersistentStoreProvider provider =
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/util/MiniZooKeeperCluster.java b/exec/java-exec/src/test/java/org/apache/drill/exec/util/MiniZooKeeperCluster.java
index ccdd7d5..9633b95 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/util/MiniZooKeeperCluster.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/util/MiniZooKeeperCluster.java
@@ -23,6 +23,7 @@
 import java.net.BindException;
 import java.net.InetSocketAddress;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Random;
@@ -315,7 +316,7 @@
         Socket sock = new Socket("localhost", port);
         try {
           OutputStream outstream = sock.getOutputStream();
-          outstream.write("stat".getBytes());
+          outstream.write("stat".getBytes(StandardCharsets.UTF_8));
           outstream.flush();
         } finally {
           sock.close();
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/vector/TestSplitAndTransfer.java b/exec/java-exec/src/test/java/org/apache/drill/exec/vector/TestSplitAndTransfer.java
index e1b8dbc..def8040 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/vector/TestSplitAndTransfer.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/vector/TestSplitAndTransfer.java
@@ -28,6 +28,8 @@
 import org.apache.drill.test.BaseTest;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertFalse;
 import static org.junit.Assert.assertTrue;
@@ -49,7 +51,7 @@
     final NullableVarCharVector.Mutator mutator = varCharVector.getMutator();
     for (int i = 0; i < valueCount; i += 3) {
       final String s = String.format("%010d", i);
-      mutator.set(i, s.getBytes());
+      mutator.set(i, s.getBytes(StandardCharsets.UTF_8));
       compareArray[i] = s;
     }
     mutator.setValueCount(valueCount);
@@ -67,7 +69,7 @@
       for (int i = 0; i < length; i++) {
         final boolean expectedSet = ((start + i) % 3) == 0;
         if (expectedSet) {
-          final byte[] expectedValue = compareArray[start + i].getBytes();
+          final byte[] expectedValue = compareArray[start + i].getBytes(StandardCharsets.UTF_8);
           assertFalse(accessor.isNull(i));
           assertArrayEquals(expectedValue, accessor.get(i));
         } else {
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/FileTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/FileTest.java
index c736ce0..2bd4753 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/FileTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/work/batch/FileTest.java
@@ -21,6 +21,7 @@
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.util.concurrent.TimeUnit;
 
 import org.apache.hadoop.conf.Configuration;
@@ -41,7 +42,7 @@
     FileSystem fs = FileSystem.get(conf);
     Path path = new Path("/tmp/testFile");
     FSDataOutputStream out = fs.create(path);
-    byte[] s = "hello world".getBytes();
+    byte[] s = "hello world".getBytes(StandardCharsets.UTF_8);
     out.write(s);
     out.hflush();
     FSDataInputStream in = fs.open(path);
diff --git a/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/RowSetUtilities.java b/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/RowSetUtilities.java
index b8a6eac..5a2a465 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/RowSetUtilities.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/test/rowSet/RowSetUtilities.java
@@ -21,6 +21,7 @@
 import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.Arrays;
 import java.util.LinkedHashMap;
 import java.util.Map;
@@ -85,7 +86,7 @@
   public static Object testDataFromInt(ValueType valueType, MajorType dataType, int value) {
     switch (valueType) {
     case BYTES:
-      return Integer.toHexString(value).getBytes();
+      return Integer.toHexString(value).getBytes(StandardCharsets.UTF_8);
     case FLOAT:
       return (float) value;
     case DOUBLE:
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomAbsFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomAbsFunction.java
index 9bdcffb..b0124a7 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomAbsFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomAbsFunction.java
@@ -25,6 +25,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="abs",
@@ -56,8 +57,8 @@
 
     out.buffer = buffer;
     out.start = 0;
-    out.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    out.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
   }
 }
 
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLogFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLogFunction.java
index fa49a35..846f3c8 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLogFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLogFunction.java
@@ -24,6 +24,7 @@
 import org.apache.drill.exec.expr.annotations.Output;
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="log",
@@ -51,8 +52,8 @@
 
     out.buffer = buffer;
     out.start = 0;
-    out.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    out.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
   }
 }
 
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerDummyFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerDummyFunction.java
index 1e401d1..21241e1 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerDummyFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerDummyFunction.java
@@ -24,6 +24,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 public class CustomLowerDummyFunction implements DrillSimpleFunc {
 
@@ -50,8 +51,8 @@
     // put the output value into output buffer
     output.buffer = buffer;
     output.start = 0;
-    output.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    output.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
 
   }
 }
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunction.java
index f868be3..bf3661a 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunction.java
@@ -25,6 +25,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="custom_lower",
@@ -56,8 +57,8 @@
     // put the output value into output buffer
     output.buffer = buffer;
     output.start = 0;
-    output.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    output.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
 
   }
 }
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunctionV2.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunctionV2.java
index e564d7f..12a0286 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunctionV2.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomLowerFunctionV2.java
@@ -25,6 +25,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="custom_lower",
@@ -56,8 +57,8 @@
     // put the output value into output buffer
     output.buffer = buffer;
     output.start = 0;
-    output.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    output.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
 
   }
 }
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomUpperFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomUpperFunction.java
index 9ac473b..dc32ed3 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomUpperFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/CustomUpperFunction.java
@@ -25,6 +25,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="custom_upper",
@@ -56,8 +57,8 @@
     // put the output value into output buffer
     output.buffer = buffer;
     output.start = 0;
-    output.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    output.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
 
   }
 }
diff --git a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/LowerFunction.java b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/LowerFunction.java
index 0d5d149..2f8c0fa 100644
--- a/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/LowerFunction.java
+++ b/exec/java-exec/src/test/resources/drill-udf/src/main/java/org/apache/drill/udf/dynamic/LowerFunction.java
@@ -25,6 +25,7 @@
 import org.apache.drill.exec.expr.holders.VarCharHolder;
 
 import javax.inject.Inject;
+import java.nio.charset.StandardCharsets;
 
 @FunctionTemplate(
     name="lower",
@@ -56,8 +57,8 @@
     // put the output value into output buffer
     output.buffer = buffer;
     output.start = 0;
-    output.end = outputValue.getBytes().length;
-    buffer.setBytes(0, outputValue.getBytes());
+    output.end = outputValue.getBytes(StandardCharsets.UTF_8).length;
+    buffer.setBytes(0, outputValue.getBytes(StandardCharsets.UTF_8));
 
   }
 }
diff --git a/exec/vector/src/test/java/org/apache/drill/exec/vector/VariableLengthVectorTest.java b/exec/vector/src/test/java/org/apache/drill/exec/vector/VariableLengthVectorTest.java
index 96cf102..e1fede7 100644
--- a/exec/vector/src/test/java/org/apache/drill/exec/vector/VariableLengthVectorTest.java
+++ b/exec/vector/src/test/java/org/apache/drill/exec/vector/VariableLengthVectorTest.java
@@ -25,6 +25,8 @@
 import org.junit.Assert;
 import org.junit.Test;
 
+import java.nio.charset.StandardCharsets;
+
 /**
  * This test uses {@link VarCharVector} to test the template code in VariableLengthVector.
  */
@@ -155,7 +157,7 @@
   {
     for (int index = offset; index < size; index++) {
       String indexString = prefix + "String num " + index;
-      mutator.setSafe(index, indexString.getBytes());
+      mutator.setSafe(index, indexString.getBytes(StandardCharsets.UTF_8));
     }
   }
 
@@ -163,7 +165,7 @@
   {
     for (int index = offset; index < size; index++) {
       String indexString = prefix + "String num " + index;
-      Assert.assertArrayEquals(indexString.getBytes(), accessor.get(index));
+      Assert.assertArrayEquals(indexString.getBytes(StandardCharsets.UTF_8), accessor.get(index));
     }
   }
 }
diff --git a/exec/vector/src/test/java/org/apache/drill/exec/vector/VectorTest.java b/exec/vector/src/test/java/org/apache/drill/exec/vector/VectorTest.java
index a3993c9..8a573b6 100644
--- a/exec/vector/src/test/java/org/apache/drill/exec/vector/VectorTest.java
+++ b/exec/vector/src/test/java/org/apache/drill/exec/vector/VectorTest.java
@@ -41,6 +41,8 @@
 
 import io.netty.buffer.DrillBuf;
 
+import java.nio.charset.StandardCharsets;
+
 public class VectorTest extends BaseTest {
 
   private static RootAllocator allocator;
@@ -87,7 +89,7 @@
 
       // Write one value
 
-      v.getMutator().setSafe(0, "foo".getBytes());
+      v.getMutator().setSafe(0, "foo".getBytes(StandardCharsets.UTF_8));
       v.getMutator().setValueCount(1);
       assertEquals(1, va.getValueCount());
       assertEquals(2, ova.getValueCount());
@@ -105,7 +107,7 @@
 
       // Write one more value
 
-      v.getMutator().setSafe(2, "mumble".getBytes());
+      v.getMutator().setSafe(2, "mumble".getBytes(StandardCharsets.UTF_8));
       v.getMutator().setValueCount(2);
       assertEquals(2, va.getValueCount());
       assertEquals(3, ova.getValueCount());
@@ -185,7 +187,7 @@
 
       // Write one value
 
-      byte[] bytes = "foo".getBytes();
+      byte[] bytes = "foo".getBytes(StandardCharsets.UTF_8);
       vm.setSafe(0, bytes, 0, bytes.length);
       assertEquals(0, vm.getLastSet());
       vm.setValueCount(1);
@@ -217,7 +219,7 @@
 
       // Write one more value
 
-      byte[] second = "mumble".getBytes();
+      byte[] second = "mumble".getBytes(StandardCharsets.UTF_8);
       vm.setSafe(2, second, 0, second.length);
       assertEquals(2, v.getMutator().getLastSet());
       vm.setValueCount(3);
@@ -264,11 +266,11 @@
       // Write in locations 1 and 3.
 
       w.setPosition(0);
-      buf.setBytes(0, "foo".getBytes());
+      buf.setBytes(0, "foo".getBytes(StandardCharsets.UTF_8));
       w.writeVarChar(0, 3, buf);
 
       w.setPosition(2);
-      buf.setBytes(0, "mumble".getBytes());
+      buf.setBytes(0, "mumble".getBytes(StandardCharsets.UTF_8));
       w.writeVarChar(0, 6, buf);
 
       // Don't close the writer; it clears the vector