diff --git a/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java b/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
index 6296ced..20cf7c0 100644
--- a/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
+++ b/core/src/main/java/org/apache/ftpserver/impl/IODataConnection.java
@@ -27,6 +27,7 @@
 import java.io.OutputStreamWriter;
 import java.io.Writer;
 import java.net.Socket;
+import java.nio.charset.StandardCharsets;
 import java.util.zip.DeflaterOutputStream;
 import java.util.zip.InflaterInputStream;
 
@@ -176,13 +177,13 @@
         OutputStream out = getDataOutputStream();
         Writer writer = null;
         try {
-            writer = new OutputStreamWriter(out, "UTF-8");
+            writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
             writer.write(str);
 
             // update session
             if (session instanceof DefaultFtpSession) {
                 ((DefaultFtpSession) session).increaseWrittenDataBytes(str
-                        .getBytes("UTF-8").length);
+                        .getBytes(StandardCharsets.UTF_8).length);
             }
         } finally {
             if (writer != null) {
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/ActiveModeReplyTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/ActiveModeReplyTest.java
index ed02174..073ca55 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/ActiveModeReplyTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/ActiveModeReplyTest.java
@@ -21,6 +21,7 @@
 
 import java.io.File;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPClientConfig;
@@ -47,7 +48,7 @@
         TEST_FILE1.createNewFile();
         assertTrue(TEST_FILE1.exists());
 
-        testData = ("TESTDATA").getBytes("UTF-8");
+        testData = ("TESTDATA").getBytes(StandardCharsets.UTF_8);
         TestUtil.writeDataToFile(TEST_FILE, testData);
         assertTrue(TEST_FILE.exists());
 
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/FtpMd5Test.java b/core/src/test/java/org/apache/ftpserver/clienttests/FtpMd5Test.java
index 2221dd1..8fcfb87 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/FtpMd5Test.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/FtpMd5Test.java
@@ -20,6 +20,7 @@
 package org.apache.ftpserver.clienttests;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.security.Security;
 import java.util.HashMap;
 import java.util.Map;
@@ -66,8 +67,8 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        testData = "TESTDATA".getBytes("UTF-8");
-        testData2 = "Hello world".getBytes("UTF-8");
+        testData = "TESTDATA".getBytes(StandardCharsets.UTF_8);
+        testData2 = "Hello world".getBytes(StandardCharsets.UTF_8);
         testDataHash = DigestUtils.md5Hex(testData).toUpperCase();
         testData2Hash = DigestUtils.md5Hex(testData2).toUpperCase();
 
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/I18NTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/I18NTest.java
index ea9658f..0c3c826 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/I18NTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/I18NTest.java
@@ -22,6 +22,8 @@
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.ftpserver.test.TestUtil;
@@ -35,7 +37,7 @@
 
     private static final String TESTDATA = "TESTDATA";
 
-    private static final String ENCODING = "UTF-8";
+    private static final Charset ENCODING = StandardCharsets.UTF_8;
 
     private static byte[] testData = null;
 
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/ListTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/ListTest.java
index 4ed347b..4729fcb 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/ListTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/ListTest.java
@@ -20,6 +20,7 @@
 package org.apache.ftpserver.clienttests;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 import java.util.Calendar;
 
 import org.apache.commons.net.ftp.FTPClientConfig;
@@ -58,7 +59,7 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        testData = "TESDATA".getBytes("UTF-8");
+        testData = "TESDATA".getBytes(StandardCharsets.UTF_8);
 
         FTPClientConfig config = new FTPClientConfig("UNIX");
         client.configure(config);
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/NLSTTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/NLSTTest.java
index 79408ab..cbcbf4a 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/NLSTTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/NLSTTest.java
@@ -20,6 +20,7 @@
 package org.apache.ftpserver.clienttests;
 
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.net.ftp.FTPClientConfig;
 import org.apache.ftpserver.test.TestUtil;
@@ -54,7 +55,7 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        testData = "TESDATA".getBytes("UTF-8");
+        testData = "TESDATA".getBytes(StandardCharsets.UTF_8);
 
         FTPClientConfig config = new FTPClientConfig("UNIX");
         client.configure(config);
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java
index 14d5065..8f06cb0 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/RetrieveTest.java
@@ -21,6 +21,7 @@
 
 import java.io.ByteArrayOutputStream;
 import java.io.File;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.ftpserver.test.TestUtil;
 
@@ -52,7 +53,7 @@
     protected void setUp() throws Exception {
         super.setUp();
 
-        testData = ("TESTDATA" + EOL).getBytes("UTF-8");
+        testData = ("TESTDATA" + EOL).getBytes(StandardCharsets.UTF_8);
 
         client.login(ADMIN_USERNAME, ADMIN_PASSWORD);
     }
diff --git a/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java b/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java
index a9b0261..ec485b9 100644
--- a/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java
+++ b/core/src/test/java/org/apache/ftpserver/clienttests/StoreTest.java
@@ -20,6 +20,8 @@
 
 import java.io.ByteArrayInputStream;
 import java.io.File;
+import java.nio.charset.Charset;
+import java.nio.charset.StandardCharsets;
 
 import org.apache.commons.net.ftp.FTP;
 import org.apache.commons.net.ftp.FTPClient;
@@ -39,7 +41,7 @@
     private static final String TESTDATA = "TESTDATA" + EOL + "line2" + EOL;
     private static final String TESTDATA_CRLF = "TESTDATA" + CRLF + "line2" + CRLF;
     private static final String TESTDATA_LF = "TESTDATA" + LF + "line2" + LF;
-    private static final String ENCODING = "UTF-8";
+    private static final Charset ENCODING = StandardCharsets.UTF_8;
     private static final String TEST_FILENAME = "test.txt";
     private static final String TEST_FILENAME_WITH_LEADING_SPACE = " leading.txt";
     private static final int SKIP_LEN = 4;
