Looking further I can't understand the original code. If the driver doesn't support utf-8 then we encode it to utf-8? Is it right?