Convert encoding using ICU instead of iconv

Pending: MSVC support