Charset クラス

定義

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

[Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)]
public abstract class Charset : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IComparable
[<Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)>]
type Charset = class
    inherit Object
    interface IComparable
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
継承
Charset
属性
実装

注釈

16 ビット Unicode コード単位のシーケンスとバイト シーケンス間の名前付きマッピング。 このクラスは、デコーダーとエンコーダーを作成し、文字セットに関連付けられているさまざまな名前を取得するためのメソッドを定義します。 このクラスのインスタンスは不変です。

また、このクラスでは、特定の文字セットがサポートされているかどうかをテストするための静的メソッド、名前で文字セット インスタンスを検索する方法、および現在の Java 仮想マシンでサポートを利用できるすべての文字セットを含むマップを構築するための静的メソッドも定義します。 新しい文字セットのサポートは、 クラスで java.nio.charset.spi.CharsetProvider 定義されているサービス プロバイダー インターフェイスを使用して追加できます。

このクラスで定義されているすべてのメソッドは、複数の同時実行スレッドで使用しても安全です。

"charenc"><h2>Charset names</h2>

文字セットは、次の文字で構成される文字列によって名前が付けられます。

<ul>

<li> 大文字 'A' から 'Z' ('&#92;u0041'  '&#92;u005a')

<li> 小文字 'a' から 'z' ('&#92;u0061'  '&#92;u007a')

<li> 数字 '0' から '9' ('&#92;u0030'  '&#92;u0039')

<li> ダッシュ文字 '-' ('&#92;u002d', <小ハイ>フンマイナス</小>)

<li> プラス文字 '+' ('&#92;u002b', <小さい>プラス記号</小)>

<li> ピリオド文字 '.' ('&#92;u002e', <小さな>フルストップ</小>)

<li> コロン文字 ':' ('&#92;u003a', <小コロン>/小>)<、および

<li> アンダースコア文字 '_' ('&#92;u005f', <小さな>LOW LINE</small>)。

</ul>

文字セット名は、文字または数字で始まる必要があります。 空の文字列は有効な文字セット名ではありません。 文字セット名では大文字と小文字は区別されません。つまり、文字セット名を比較する場合、大文字と小文字は常に無視されます。 文字セット名は通常、 RFC  に記載されている規則に従います。2278: IANA Charset の登録手順http://www.ietf.org/rfc/rfc2278.txt

すべての文字セットには 正規名 があり、1 つ以上 のエイリアスを持つこともあります。 正規名は、このクラスの #name() name メソッドによって返されます。 正規名は慣例により、通常は大文字です。 文字セットのエイリアスは、 メソッドによって #aliases() aliases 返されます。

"hn">一部の文字セットには <、以前のバージョンの Java プラットフォームとの互換性のために定義されている i>履歴名</i> があります。 文字セットの履歴名は、その正規名またはその別名のいずれかです。 履歴名は、 クラスと java.io.OutputStreamWriter#getEncoding OutputStreamWriter クラスの java.io.InputStreamReader#getEncoding InputStreamReader メソッドによってgetEncoding()返されます。

"iana">IANA Charset Registryhttp://www.iana.org/assignments/character-sets にリストされている文字セットが Java プラットフォームの実装でサポートされている場合、その正規名はレジストリに一覧表示されている名前である必要があります。 多くの文字セットには、レジストリに複数の名前が付けられます。その場合、レジストリはいずれかの名前を MIME 優先として識別します。 文字セットに複数のレジストリ名がある場合、その正規名は MIME 優先名であり、レジストリ内の他の名前は有効なエイリアスである必要があります。 サポートされている文字セットが IANA レジストリにリストされていない場合、その正規名は、文字列 "X-" または "x-"のいずれかで始まる必要があります。

IANA 文字セット レジストリは時間の経過と同時に変更されるため、特定の文字セットの正規名とエイリアスも時間の経過と同時に変更される可能性があります。 互換性を確保するために、文字セットから別名を削除しないようにし、文字セットの正規名を変更した場合は、以前の正規名を別名にすることをお勧めします。

<h2>Standard charsets</h2>

"standard">Java プラットフォームのすべての実装は、次の標準文字セットをサポートするために必要です。 他の文字セットがサポートされているかどうかを確認するには、実装のリリース ドキュメントを参照してください。 このような省略可能な文字セットの動作は、実装によって異なる場合があります。

<blockquote><table class="striped" style="width:80%"><キャプション style="display:none">Description of standard charsets</キャプション><thead<>tr><th scope="col" style="text-align:left">Charset</th><scope="col" style="text-align:left">Description</th></tr/thead><tbody><tr><>< th scope="row" style="vertical-align:top"><US-ASCII/th><td>7 ビット ASCII、 a.k.aISO646-US. a.a. Unicode 文字セット</td></tr tr><><th scope="row" style="vertical-align:top"ISO-8859-1&nbsp;&nbsp;<>/th><td>ISO ラテン アルファベット No. 1,a.k.a. ISO-LATIN-1</td></tr><th><scope="row" style="vertical-align:top"<UTF-8>/th<>td>8 ビット UCS 変換形式</td></tr tr><><th scope="row" style="vertical-align:top"<UTF-16BE>/th><td>16 ビット UCS 変換形式, ビッグ エンディアン バイト order</td></tr tr><<>th scope="row" style="vertical-align:top"><UTF-16LE/th><td>16 ビット UCS 変換形式, リトル エンディアン バイト order</td></tr tr><<>th scope="row" style="vertical-align:top"><UTF-16/th><td>16 ビット UCS 変換形式, byte オプションのバイトオーダーマーク/td></tr<>/tbody></table></blockquoteによって識別される順序<>

文字セットは UTF-8 RFC   によって指定されます。2279http://www.ietf.org/rfc/rfc2279.txt;基になっている変換形式は、修正  で指定されています。ISO  の 2;10646-1 と は Unicode 標準http://www.unicode.org/unicode/standard/standard.htmlでも説明されています。

文字セットは UTF-16 RFC   によって指定されます。2781http://www.ietf.org/rfc/rfc2781.txt;基になっている変換形式は、修正  で指定されています。ISO  の 1;10646-1 と は Unicode 標準http://www.unicode.org/unicode/standard/standard.htmlでも説明されています。

文字セットは UTF-16 16 ビットの数量を使用するため、バイト順に依存します。 これらのエンコーディングでは、ストリームのバイトオーダーは、Unicode文字'&#92;uFEFF'で表される初期バイトオーダーマークによって示され得る。 バイトオーダー マークは次のように処理されます。

<ul>

<李>

デコード時にUTF-16BE、 文字セットと UTF-16LE 文字セットは、最初のバイトオーダー マークを小さな>ZERO-WIDTH NON-BREAKING SPACE</small> として<解釈します。エンコード時には、バイト順マークは書き込まれません。

</李>

<李>

デコード時に、 UTF-16 文字セットは入力ストリームの先頭にあるバイトオーダー マークを解釈してストリームのバイト順を示しますが、バイトオーダー マークがない場合は既定で big-endian に設定されます。エンコード時には、ビッグ エンディアンバイトオーダーを使用し、ビッグエンディアンバイトオーダーマークを書き込みます。

</李>

</ul>

いずれの場合も、入力シーケンスの最初の要素の後に発生するバイトオーダー マークは省略されません。小さな>ZERO-WIDTH NON-BREAKING SPACE</small> を表<すために同じコードが使用されるためです。

Android ノート: Android プラットフォームの既定値は常に UTF-8 です。

クラスは StandardCharsets 、標準文字セットごとに定数を定義します。

<h2>の用語</h2>

このクラスの名前は、 RFC  で使用される用語から取得されます。2278http://www.ietf.org/rfc/rfc2278.txt。 そのドキュメントでは、 文字セット は、1 つ以上のコード化された文字セットと文字エンコード スキームの組み合わせとして定義されています。 (この定義はわかりにくいです。他のソフトウェア システムでは 、文字セットコード化された文字セットのシノニムとして定義しているものもあります)。

コード化文字セットは、抽象文字のセットと整数のセットの間のマッピングです。 US-ASCII、 ISO 8859-1, JIS X 0201 と Unicode は、コード化された文字セットの例です。

一部の標準では、 文字セット を、関連付けられた番号付けなしで単純に抽象文字のセットとして定義しています。 アルファベットは、このような文字セットの例です。 ただし、文字セットとコード化文字セットの微妙な違いは、実際にはほとんど使用しません。前者は、Java API 仕様を含め、後者の短い形式になっています。

文字エンコード 方式は、1 つ以上のコード化された文字セットとオクテット (8 ビット バイト) シーケンスのセットの間のマッピングです。 UTF-8、UTF-16、ISO 2022 と EUC は文字エンコード スキームの例です。 エンコード スキームは、多くの場合、特定のコード化された文字セットに関連付けられます。たとえば、UTF-8 は Unicode のエンコードにのみ使用されます。 ただし、一部のスキームは、複数のコード化文字セットに関連付けられています。たとえば、EUC を使用して、さまざまなアジアのコード化文字セット内の文字をエンコードできます。

コード化文字セットが 1 つの文字エンコード 方式でのみ使用される場合、通常、対応する文字セットにはコード化文字セットの名前が付けられます。それ以外の場合、通常、文字セットはエンコード スキームに名前が付けられ、場合によっては、それがサポートするコード化文字セットのロケールに名前が付けられます。 したがって US-ASCII 、 は、コード化された文字セットの名前と、それをエンコードする文字セットの名前の両方であり、 EUC-JP は JIS  をエンコードする文字セットの名前です。X 0201, JIS X 0208、JIS X 日本語の 0212 コード化文字セット。

Java プログラミング言語のネイティブ文字エンコードは UTF-16 です。 したがって、Java プラットフォームの文字セットは、16 ビット UTF-16 コード単位のシーケンス (つまり、文字のシーケンス) とバイトシーケンスの間のマッピングを定義します。

1.4 で追加されました。

の Java ドキュメント java.nio.charset.Charset

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

コンストラクター

Charset(IntPtr, JniHandleOwnership)

JNI オブジェクトのマネージド表現を作成するときに使用されるコンストラクター。ランタイムによって呼び出されます。

Charset(String, String[])

指定された正規名とエイリアス セットを使用して、新しい文字セットを初期化します。

プロパティ

Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
IsRegistered

この文字セットが IANA Charset レジストリに登録されているかどうかを示します。

JniIdentityHashCode

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

(継承元 Object)
JniPeerMembers

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

PeerReference

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

(継承元 Object)
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用することを意図したものではありません。

メソッド

Aliases()

この文字セットのエイリアスを含むセットを返します。

AvailableCharsets()

標準の文字セット名から charset オブジェクトへの並べ替えられたマップを構築します。

CanEncode()

この文字セットでエンコードがサポートされているかどうかを示します。

Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
CompareTo(Charset)

この文字セットを別の文字セットと比較します。

Contains(Charset)

この文字セットに指定された文字セットが含まれているかどうかを示します。

Decode(ByteBuffer)

この文字セット内のバイトを Unicode 文字にデコードする便利なメソッド。

DefaultCharset()

この Java 仮想マシンの既定の文字セットを返します。

DisplayName()

既定のロケールに対するこの文字セットの人間が判読できる名前を返します。

DisplayName(Locale)

指定されたロケールに対するこの文字セットの人間が判読できる名前を返します。

Dispose()

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

(継承元 Object)
Dispose(Boolean)

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

(継承元 Object)
Encode(CharBuffer)

Unicode 文字をこの文字セット内のバイトにエンコードする便利なメソッド。

Encode(String)

この文字セット内のバイトに文字列をエンコードする便利なメソッド。

Equals(Object)

このオブジェクトが別のオブジェクトと等しいかどうかを示します。

ForName(String)

名前付き文字セットの charset オブジェクトを返します。

GetHashCode()

この文字セットのハッシュコードを計算します。

IsSupported(String)

名前付き文字セットがサポートされているかどうかを示します。

JavaFinalize()

ガベージ コレクションがオブジェクトへの参照がなくなったと判断したときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Name()

この文字セットの正規名を返します。

NewDecoder()

この文字セットの新しいデコーダーを構築します。

NewEncoder()

この文字セットの新しいエンコーダーを構築します。

Notify()

このオブジェクトのモニターで待機している 1 つのスレッドをウェイクアップします。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドをウェイクアップします。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
ToArray<T>()

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

(継承元 Object)
ToString()

この文字セットを記述する文字列を返します。

UnregisterFromRuntime()

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

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または <em>割り込み</em によって待機します>。

(継承元 Object)
Wait(Int64)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドが起動するまで待機します。通常<>は、通知</em> または>< em 割り込み</em>、または一定のリアルタイムが経過するまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

IComparable.CompareTo(Object)

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

IJavaPeerable.Disposed()

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

(継承元 Object)
IJavaPeerable.DisposeUnlessReferenced()

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

(継承元 Object)
IJavaPeerable.Finalized()

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

(継承元 Object)
IJavaPeerable.JniManagedPeerState

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

(継承元 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

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

(継承元 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

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

(継承元 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

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

(継承元 Object)

拡張メソッド

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

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

GetJniTypeName(IJavaPeerable)

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

適用対象