Truncate the string to first character before invalid UTF-8 one instead of replacing non ascii characters by spaces. --- src/eir.c | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/src/eir.c b/src/eir.c index 28b09653c..1e1f76952 100644 --- a/src/eir.c +++ b/src/eir.c @@ -127,19 +127,10 @@ static void eir_parse_uuid128(struct eir_data *eir, const uint8_t *data, static char *name2utf8(const uint8_t *name, uint8_t len) { char utf8_name[HCI_MAX_NAME_LENGTH + 2]; - int i; - - if (g_utf8_validate((const char *) name, len, NULL)) - return g_strndup((char *) name, len); memset(utf8_name, 0, sizeof(utf8_name)); strncpy(utf8_name, (char *) name, len); - - /* Assume ASCII, and replace all non-ASCII with spaces */ - for (i = 0; utf8_name[i] != '\0'; i++) { - if (!isascii(utf8_name[i])) - utf8_name[i] = ' '; - } + strtoutf8(utf8_name, len); /* Remove leading and trailing whitespace characters */ g_strstrip(utf8_name); -- 2.43.0