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); +}