diff --git a/autoload/ale.vim b/autoload/ale.vim index d1c1112a..10f17747 100644 --- a/autoload/ale.vim +++ b/autoload/ale.vim @@ -275,6 +275,18 @@ function! ale#GetLocItemMessage(item, format_string) abort " Windows may insert carriage return line endings (^M), strip these characters. let l:msg = substitute(l:msg, '\r', '', 'g') + if has('win32') + let l:to = &encoding + + if l:to is# 'utf-8' + let l:res = iconv(l:msg, 'default', l:to) + + if l:res isnot# '' && stridx(l:res, '?') == -1 + let l:msg=l:res + endif + endif + endif + return l:msg endfunction