Как использовать файл формата 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();

person Animesh Kumar Paul    schedule 10.05.2012    source источник


Ответы (1)


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

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();
person realprogram    schedule 10.05.2012