I dont know how, but it's indeed GBK, even with musl, vim indeed generated GBK set files, maybe it's because im using gnu gettext(without-included-gettext). I think we should avoid this issue depending on a check of libc, rather than assuming all .mo files are UTF-8 set.

2017-02-13 21:28 GMT+08:00 Rich Felker <dalias@libc.org>:
On Mon, Feb 13, 2017 at 04:01:31PM +0800, He X wrote:
> New find, as you can see, zh_CN is different from zh_CN.UTF-8, it's GBK
> codeset, we can't strip .UTF-8 easily, or we will get a lot of junk:

That's on glibc; your "finding" is irrelevant to musl, where the
encoding for all locales is UTF-8.

Rich