diff --git a/src/main/java/com/googlesource/gerrit/plugins/manager/FirstWebLoginListener.java b/src/main/java/com/googlesource/gerrit/plugins/manager/FirstWebLoginListener.java
index 722d406..f0c934c 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/manager/FirstWebLoginListener.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/manager/FirstWebLoginListener.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.manager;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 import com.google.gerrit.extensions.annotations.PluginData;
 import com.google.gerrit.httpd.WebLoginListener;
 import com.google.gerrit.server.IdentifiedUser;
@@ -53,7 +55,8 @@
       if (!firstLoginFile.toFile().exists()) {
         response.sendRedirect(pluginUrlPath + "static/intro.html");
 
-        Files.write(firstLoginFile, new Date().toString().getBytes(), StandardOpenOption.CREATE);
+        Files.write(
+            firstLoginFile, new Date().toString().getBytes(UTF_8), StandardOpenOption.CREATE);
       }
     }
   }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/manager/XAuthFilter.java b/src/main/java/com/googlesource/gerrit/plugins/manager/XAuthFilter.java
index de1eb10..616b9a4 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/manager/XAuthFilter.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/manager/XAuthFilter.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.manager;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 import com.google.gerrit.extensions.registration.DynamicItem;
 import com.google.gerrit.httpd.WebSession;
 import com.google.gerrit.server.AccessPath;
@@ -85,8 +87,8 @@
               return new TokenReplaceOutputStream(
                   (HttpServletResponse) getResponse(),
                   origContentLength,
-                  "@X-Gerrit-Auth".getBytes(),
-                  gerritAuth.getBytes());
+                  "@X-Gerrit-Auth".getBytes(UTF_8),
+                  gerritAuth.getBytes(UTF_8));
             }
           };
 
diff --git a/src/main/java/com/googlesource/gerrit/plugins/manager/gson/SmartGson.java b/src/main/java/com/googlesource/gerrit/plugins/manager/gson/SmartGson.java
index d26f829..ae339de 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/manager/gson/SmartGson.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/manager/gson/SmartGson.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.manager.gson;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 import com.google.gerrit.json.OutputFormat;
 import com.google.gson.Gson;
 import com.google.gson.JsonObject;
@@ -52,6 +54,6 @@
     } catch (MalformedURLException e) {
       throw new IllegalArgumentException("Internal error: Gerrit CI URL seems to be malformed", e);
     }
-    return new InputStreamReader(ciUrl.openStream());
+    return new InputStreamReader(ciUrl.openStream(), UTF_8);
   }
 }
diff --git a/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java b/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
index 31f77e7..66c4c8d 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/manager/repository/JenkinsCiPluginsRepository.java
@@ -14,6 +14,8 @@
 
 package com.googlesource.gerrit.plugins.manager.repository;
 
+import static java.nio.charset.StandardCharsets.UTF_8;
+
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
 import com.google.inject.Inject;
@@ -168,7 +170,8 @@
               "%s/artifact/%s",
               buildExecution.getString("url"), verArtifactJson.get().getString("relativePath"));
       try (BufferedReader reader =
-          new BufferedReader(new InputStreamReader(new URL(versionUrl).openStream()), 4096)) {
+          new BufferedReader(
+              new InputStreamReader(new URL(versionUrl).openStream(), UTF_8), 4096)) {
         String line;
         while ((line = reader.readLine()) != null) {
           if (artifactBody.length() > 0) {
