diff options
Diffstat (limited to 'misc/charset_conv.c')
-rw-r--r-- | misc/charset_conv.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/misc/charset_conv.c b/misc/charset_conv.c index 3e7e47cc58..0037775586 100644 --- a/misc/charset_conv.c +++ b/misc/charset_conv.c @@ -52,6 +52,13 @@ bool mp_charset_is_utf8(const char *user_cp) strcasecmp(user_cp, "utf-8") == 0); } +bool mp_charset_is_utf16(const char *user_cp) +{ + bstr s = bstr0(user_cp); + return bstr_case_startswith(s, bstr0("utf16")) || + bstr_case_startswith(s, bstr0("utf-16")); +} + // Split the string on ':' into components. // out_arr is at least max entries long. // Return number of out_arr entries filled. @@ -179,6 +186,8 @@ static const char *mp_uchardet(void *talloc_ctx, struct mp_log *log, bstr buf) iconv_close(icdsc); } } + if (!res && bstr_validate_utf8(buf) >= 0) + res = "utf-8"; uchardet_delete(det); return res; } |