1

2 つの質問があります。

Java で xls ファイルを開いて tsv ファイルとして保存する方法はありますか? 編集:または、Java を介して xls ファイルを tsv ファイルに変換する方法はありますか?

Java を使用して UTF-16LE ファイルを UTF-8 に変換する方法はありますか?

ありがとうございました

4

2 に答える 2

0

私は2つの質問があります:

StackOverflowでは、これを2つの異なる質問に分割する必要があります...

私はあなたの2番目の質問に答えます:

Javaを使用してUTF-16LEファイルをUTF-8に変換する方法はありますか?

はい、もちろん。そして、複数の方法があります。

基本的には、入力エンコーディング(UTF-16LE)を指定して入力ファイルを読み取り、次に出力エンコーディング(UTF-8)を指定してファイルを書き込みます。

UTF-16LEでエンコードされたファイルがあるとします。

... $ file testInput.txt 
testInput.txt: Little-endian UTF-16 Unicode character data

次に、基本的にJavaで次のようなことを行うことができます(これは単なる例です。不足している例外処理コードを入力するか、最後に改行を入れないか、BOMがある場合は破棄するなど)。

    FileInputStream fis = new FileInputStream(new File("/home/.../testInput.txt") );
    InputStreamReader isr = new InputStreamReader( fis, Charset.forName("UTF-16LE") );
    BufferedReader br = new BufferedReader( isr );
    FileOutputStream fos = new FileOutputStream(new File("/home/.../testOutput.txt"));
    OutputStreamWriter osw = new OutputStreamWriter( fos, Charset.forName("UTF-8") );
    BufferedWriter bw = new BufferedWriter( osw );
    String line = null;
    while ( (line = br.readLine()) != null ) {
        bw.write(line);
        bw.newLine();   // will add an unnecessary newline at the end of your file, fix this
    }
    bw.flush();
    // take care of closing the streams here etc.

これにより、UTF-8でエンコードされたファイルが作成されます。

$ file testOutput.txt 
testOutput.txt: UTF-8 Unicode (with BOM) text

BOMは、たとえばhexdumpを使用して明確に確認できます。

 $ hexdump testOutput.txt -C
00000000  ef bb bf ... (snip)

BOMはUTF-8(ef bb fb)では3バイトでエンコードされますが、UTF-16では2バイトでエンコードされます。UTF16-LEでは、BOMは次のようになります。

$ hexdump testInput.txt -C
00000000  ff fe ... (snip)

UTF-8でエンコードされたファイルには、「BOM」(バイト順マスク)がある場合とない場合(両方とも完全に有効)があることに注意してください。UTF-8ファイルのBOMはそれほどばかげているわけではありません。バイト順序は気にしませんが、テキストファイルがUTF-8でエンコードされていることをすばやく識別するのに役立ちます。BOMを含むUTF-8ファイルは、Unicode仕様に従って完全に合法であるため、BOMで始まるUTF-8ファイルを処理できないリーダーは機能しません。簡潔でシンプル。

何らかの理由で壊れたUTF-8リーダーでBOMに対処できない場合は、ディスクに書き込む前に最初の文字列からBOMを削除することをお勧めします。

BOMの詳細については、こちらをご覧ください。

http://unicode.org/faq/utf_bom.html

于 2012-02-20T12:42:55.917 に答える
0

.xls ファイルを開いたり、編集したり、保存したりできるjexcelapiというライブラリがあります。.xls ファイルを読み込めば、それを .tsv として出力するものを書くのは難しくありません。

于 2012-02-20T12:28:12.673 に答える