3

文字セットと文字エンコーディングの区別を求めるこの優れた SO の質問を見つけました。そしてそれは理にかなっています: 基本的に、文字セットは使用可能なグリフのセットであり、それぞれのエンコーディングは各グリフがバイナリとの間でどのように変換されるかです。

その後、Java 7 SE CharsetAPI のドキュメントにアクセスして驚いたのは、getEncoding()メソッドが表示されただけで、それぞれのセッターが表示されなかったことです。そのため、少なくとも Java の世界では、すべての文字セットが事前に構成されたエンコーディングに「バインド」されているようです。

これは私に考えさせられました:なぜここにセッターがいないのですか?Java では、一連の文字をバイナリにバインドするために使用するエンコーディングをユーザーが定義できないのはなぜですか?

同じように、Java が特定の文字セット/エンコーディングをサポートしていない場合はどうなるでしょうか? カスタム セット/エンコーディングで JRE を拡張する方法はありますか?

4

2 に答える 2

7

JavaがCharsetと呼ぶものは、エンコーディングと呼ばれるものだからです。CharSetのドキュメントでは、Charsetを次のように説明しています。

16ビットUnicodeコードユニットのシーケンスとバイトのシーケンスの間の名前付きマッピング。

ところで、getEncoding()Charsetにはメソッドがありません。

于 2013-02-26T13:16:20.983 に答える
1

質問について:

同じように、Java が特定の文字セット/エンコーディングをサポートしていない場合はどうなるでしょうか? カスタム セット/エンコーディングで JRE を拡張する方法はありますか?

Java は、必要なほとんどすべてのエンコーディングをサポートしています: http://docs.oracle.com/javase/7/docs/technotes/guides/intl/encoding.doc.html

于 2013-03-02T13:14:18.177 に答える