As git-shortlog can be used as a filter as well, we do not really have the encoding info to do a reencode_string(), but in case i18n.logOutputEncoding is set, we can try to convert to the given value from utf-8. Signed-off-by: Miklos Vajna <vmiklos@xxxxxxxxxxxxxx> --- It was just annoying for me that git log respected i18n.logOutputEncoding, but I still saw unencoded utf-8 in git-shortlog output. This patches fixes my problem. Yes, I'm aware that hardwiring that utf-8 value is a bit hackish. But at least this way the output encoding is correct in case the original encoding is utf-8, which is true in most cases. Or do you have a better idea? builtin-shortlog.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-) diff --git a/builtin-shortlog.c b/builtin-shortlog.c index badd912..cd95858 100644 --- a/builtin-shortlog.c +++ b/builtin-shortlog.c @@ -45,6 +45,7 @@ static void insert_one_record(struct shortlog *log, const char *eol; const char *boemail, *eoemail; struct strbuf subject = STRBUF_INIT; + char *encoded_name = NULL; boemail = strchr(author, '<'); if (!boemail) @@ -84,7 +85,12 @@ static void insert_one_record(struct shortlog *log, snprintf(namebuf + len, room, " <%.*s>", maillen, emailbuf); } - item = string_list_insert(namebuf, &log->list); + if (git_log_output_encoding) + encoded_name = reencode_string(namebuf, git_log_output_encoding, "utf-8"); + if (!encoded_name) + encoded_name = xstrdup(namebuf); + item = string_list_insert(encoded_name, &log->list); + free(encoded_name); if (item->util == NULL) item->util = xcalloc(1, sizeof(struct string_list)); -- 1.6.1.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html