0

ファイルの書き込みに問題があります。ベンガル語と英語をUTF-8形式を使用してファイルに書き込むと、ファイルには私が書いたものとまったく同じものが含まれます。しかし、問題は、このファイルを.srtファイルとして使用して、メディアプレーヤーでビデオの字幕を表示する場合です。

メディアプレーヤーはベンガル語の字幕を表示できません。メディアプレーヤーはベンガル語の代わりに英語と記号を表示します。

しかし、自分のファイル(自分が書き込んだファイル)の内容を他のファイルにコピーしてから、他のファイルを使用すると、メディアプレーヤーは、ベンガル語、英語などのファイルに書き込んだ内容を正確に表示できます。

私の質問は、なぜ1番目のファイルが2番目のファイルと同じことを実行できないのかということです。そして、最初のファイルを使用できるコードでこの問題をどのように取り除くことができますか?

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();
4

1 に答える 1

0

You can use UTF16 instead of UTF8, then the 1st file will work.

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();
于 2012-05-10T04:23:10.220 に答える