diff --git a/bin/system-info.c b/bin/system-info.c
index 11e49cf450862bd9429414df5895fa08a3805e2f..88e76992859dbcd031c87453d1a26f621d71ec6e 100644
--- a/bin/system-info.c
+++ b/bin/system-info.c
@@ -287,11 +287,9 @@ print_libraries_details (JsonBuilder *builder,
           if (messages != NULL)
             _srt_json_builder_add_array_of_lines (builder, "messages", messages);
 
-          json_builder_set_member_name (builder, "soname");
-          json_builder_add_string_value (builder, soname);
-
-          json_builder_set_member_name (builder, "path");
-          json_builder_add_string_value (builder, srt_library_get_absolute_path (l->data));
+          _srt_json_builder_add_string_force_utf8 (builder, "soname", soname);
+          _srt_json_builder_add_string_force_utf8 (builder, "path",
+                                                   srt_library_get_absolute_path (l->data));
 
           if (srt_library_get_issues (l->data) != SRT_LIBRARY_ISSUES_NONE)
             {
diff --git a/steam-runtime-tools/json-utils-internal.h b/steam-runtime-tools/json-utils-internal.h
index 32dced70604470d2f6b38e19f0a40c3dee5e9eb0..fcc5f58b6ffbfa2ade0408cd1430a23bdc521f17 100644
--- a/steam-runtime-tools/json-utils-internal.h
+++ b/steam-runtime-tools/json-utils-internal.h
@@ -57,3 +57,7 @@ void _srt_json_builder_add_strv_value (JsonBuilder *builder,
 
 void _srt_json_builder_add_error_members (JsonBuilder *builder,
                                           const GError *error);
+
+void _srt_json_builder_add_string_force_utf8 (JsonBuilder *builder,
+                                              const char *key,
+                                              const char *value);
diff --git a/steam-runtime-tools/json-utils.c b/steam-runtime-tools/json-utils.c
index 09d7d67276a8214bab92361a81b7e7a0cf44c51e..c9bdafe7fdef185ad5994a03b3775254f85041dc 100644
--- a/steam-runtime-tools/json-utils.c
+++ b/steam-runtime-tools/json-utils.c
@@ -322,3 +322,18 @@ _srt_json_builder_add_error_members (JsonBuilder *builder,
   json_builder_set_member_name (builder, "error");
   json_builder_add_string_value (builder, error->message);
 }
+
+void
+_srt_json_builder_add_string_force_utf8 (JsonBuilder *builder,
+                                         const char *key,
+                                         const char *value)
+{
+  g_autofree gchar *valid = NULL;
+
+  json_builder_set_member_name (builder, key);
+
+  if (value != NULL)
+    valid = g_utf8_make_valid (value, -1);
+
+  json_builder_add_string_value (builder, valid);
+}