Как использовать файл формата UTF-8 в качестве файла.srt для отображения субтитров в медиаплеере?

У меня проблема с записью файлов. Когда я пишу бангла и английский в файле в формате UTF-8, файл содержит именно то, что я пишу. Но проблема в том, что я собираюсь использовать этот файл как файл.srt для отображения субтитров видео в медиаплеере.

Медиаплеер не может показывать субтитры на бангла, вместо слова бангла медиаплеер показывает какой-то английский и какой-то символ....

Но когда я копирую содержимое моего файла (в который я пишу) в другой файл, а затем, используя другой файл, медиаплеер может показать именно то, что я пишу в файле, например, bangla, english.

Мой вопрос: почему 1-й файл не может сделать то же самое, что и 2-й файл? И как я могу удалить эту проблему в коде, который я могу использовать 1-й файл.

BufferedWriter out = new BufferedWriter(
       new OutputStreamWriter(
                  new FileOutputStream(file), "UTF8"));
      int size=1;
      for(Tableclass variable:tablevector)
      {
            out.write(String.valueOf(size));
            out.newLine();
            out.write(variable.Starttime);
            out.write(" --> ");
            out.write(variable.Endtime);
            out.newLine();
            out.write(variable.Text);
            out.newLine();
            out.newLine();
          // output.format("%d\n%s --> %s\n%s\n\n",size,variable.Starttime,variable.Endtime,variable.Text);

        size++;
      }
      out.close();

1 ответ

Решение

Вы можете использовать UTF16 вместо UTF8, тогда первый файл будет работать.

BufferedWriter out = new BufferedWriter(
   new OutputStreamWriter(
              new FileOutputStream(file), "UTF16"));
  int size=1;
  for(Tableclass variable:tablevector)
  {
        out.write(String.valueOf(size));
        out.newLine();
        out.write(variable.Starttime);
        out.write(" --> ");
        out.write(variable.Endtime);
        out.newLine();
        out.write(variable.Text);
        out.newLine();
        out.newLine();
      // output.format("%d\n%s --> %s\n%s\n\n",size,variable.Starttime,variable.Endtime,variable.Text);

    size++;

  }
  out.close();
Другие вопросы по тегам