5

JREがサポートしていないエンコーディングを使用してファイルが生成された場合はどうなりますか?JREが処理できるものを拡張/カスタマイズする方法はありますか?

これはひどい/無関係な例かもしれませんが(私は初めて文字セット/エンコーディングをブラッシュアップしています)、Linux JREはCP-1252(Windowsエンコーディング)を処理しないと思います。その場合、LinuxマシンでJavaアプリを実行してCP-1252でエンコードされたファイルを読み取るにはどうすればよいですか?

Linux JREディストリビューションCP-1252をサポートしている場合でも(それは恐ろしい例です)、サポートしていないエンコーディングがあることは知っています。それらのエンコーディングが何であれ、その標準を拡張する方法はありますCharactsetか?もしそうなら、どのように?

4

3 に答える 3

4

Javaクラスライブラリには、新しい文字セットのサポートを追加するためのメカニズムがあります。については、javadocsを参照してくださいCharsetProvider

CharsetProvider基本的な考え方は、 APIを実装するクラスを作成することです。次に、JARファイルに「/META-INF/services/java.nio.charset.spi.CharsetProvider」というファイルを追加します。このファイルには、所定の形式で文字セット名がリストされています。

(このバグレポートhttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4619777にも出くわしました。これは、信頼できるアプレットに独自のCharsetを追加しようとしている場合に影響を与える可能性があります...)


すでにこれを行っている(そして多くの非標準の文字セットを提供している)「文字セット拡張ライブラリ」を知っていますか?

私が見つけた唯一の例はJCharsetで、8つの追加のcharsetしか追加しません。

あなた(または他の誰か)が含まれていない文字セットを必要とする場合は、JCharsetをダウンロードし、新しい文字セットを実装してから、変更をパッチとして作成者に投稿することをお勧めします。

于 2013-02-26T22:26:29.803 に答える
1

ドキュメントには次のように書かれています。

新しい文字セットのサポートは、java.nio.charset.spiパッケージのCharsetProviderクラスで定義されたインターフェースを介して利用可能にすることができます。

リンクをたどって、指示を読んでください...

于 2013-02-26T22:26:41.577 に答える
0

vmokshaのsunilkumar

UTF-8を含む.xmlファイルを確認してください

于 2013-02-27T12:41:29.753 に答える