Для преобразования данных utf-8 вы не можете предполагать соответствие 1-1 между байтами и символами.Попробуйте это:
String file_string = new String(bytes, "UTF-8");
(Бах. Я вижу, что я слишком медленно нажимаю кнопку «Опубликовать свой ответ».)
Чтобы прочитать весь файл как строку, сделайте что-то вродеэто:
public String openFileToString(String fileName) throws IOException
{
InputStream is = new BufferedInputStream(new FileInputStream(fileName));
try {
InputStreamReader rdr = new InputStreamReader(is, "UTF-8");
StringBuilder contents = new StringBuilder();
char[] buff = new char[4096];
int len = rdr.read(buff);
while (len >= 0) {
contents.append(buff, 0, len);
}
return buff.toString();
} finally {
try {
is.close();
} catch (Exception e) {
// log error in closing the file
}
}
}