Когда вы создаете экземпляр InputStreamReader
, используйте конструктор, который принимает набор символов.
InputStreamReader tmp = new InputStreamReader(in, "UTF-8");
И сделать то же самое с OutputStreamWriter
Мне нравится иметь
public static final Charset UTF8 = Charset.forName("UTF-8");
в некотором служебном классе в моем коде, чтобы я мог позвонить (подробнее см. Doc )
InputStreamReader tmp = new InputStreamReader(in, MyUtils.UTF8);
и не нужно обрабатывать UnsupportedEncodingException
каждый раз.