Langue

Charset Classe

Définition

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

[Android.Runtime.Register("java/nio/charset/Charset", DoNotGenerateAcw=true)]
public abstract class Charset : Java.Lang.Object, IDisposable, 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
Héritage
Attributs
Implémente

Remarques

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets. Cette classe définit des méthodes pour créer des décodeurs et des encodeurs et pour récupérer les différents noms associés à un ensemble de caractères. Les instances de cette classe sont immuables.

Cette classe définit également des méthodes statiques pour tester si un ensemble de caractères particulier est pris en charge, pour localiser des instances de jeu de caractères par nom et pour construire une carte qui contient chaque jeu de caractères pour lequel la prise en charge est disponible dans la machine virtuelle Java actuelle. La prise en charge des nouveaux ensembles de caractères peut être ajoutée via l’interface du fournisseur de services définie dans la java.nio.charset.spi.CharsetProvider classe.

Toutes les méthodes définies dans cette classe sont sécurisées pour être utilisées par plusieurs threads simultanés.

« charenc"><h2>Noms< charset/h2>

Les ensembles de caractères sont nommés par des chaînes composées des caractères suivants :

<ul>

<li> Les lettres majuscules 'A' à travers 'Z' ('&#92;u0041'  ; through  ;'&#92;u005a'),

<li> Les lettres 'a' minuscules à travers 'z' ('&#92;u0061'  ; through  ;'&#92;u007a'),

<li> Les chiffres '0' à travers '9' ('&#92;u0030'  ; through  ;'&#92;u0039'),

<li> Le tiret '-' ('&#92;u002d',  ;<petit>TRAIT D’UNION-MOINS</PETIT>),

<li> Le caractère '+' plus ('&#92;u002b',  ;<petit>SIGNE< PLUS/PETIT>),

<li> Le caractère '.' de période ('&#92;u002e',  ;<petit>ARRÊT< COMPLET/petit>),

<li> Le caractère ':' du signe deux-points ('&#92;u003a',  ;<petits POINTS>/PETITS<>) et

<li> Le trait '_' de soulignement ('&#92;u005f',  ;<small>LOW  ; LIGNE</petite>).

</ul>

Un nom de jeu de caractères doit commencer par une lettre ou un chiffre. La chaîne vide n’est pas un nom de charset légal. Les noms d’ensembles de caractères ne respectent pas la casse ; autrement dit, le cas est toujours ignoré lors de la comparaison des noms d’ensembles de caractères. Les noms d’ensembles de caractères suivent généralement les conventions documentées dans RFC  ; 2278 :  ; Procédureshttp://www.ietf.org/rfc/rfc2278.txt d’inscription IANA Charset.

Chaque jeu de caractères a un nom canonique et peut également avoir un ou plusieurs alias. Le nom canonique est retourné par la #name() name méthode de cette classe. Les noms canoniques sont, par convention, généralement en majuscules. Les alias d’un charset sont retournés par la #aliases() aliases méthode.

« hn »> Certains charsets ont un <>nom</i> historique i défini pour la compatibilité avec les versions précédentes de la plateforme Java. Le nom historique d’un charset est son nom canonique ou l’un de ses alias. Le nom historique est retourné par les getEncoding() méthodes des classes et java.io.InputStreamReader#getEncoding InputStreamReader des java.io.OutputStreamWriter#getEncoding OutputStreamWriter classes.

« iana »> Si un ensemble de caractères répertorié dans le Registrehttp://www.iana.org/assignments/character-sets IANA Charset est pris en charge par une implémentation de la plateforme Java, son nom canonique doit être le nom répertorié dans le Registre. De nombreux ensembles de caractères sont donnés plusieurs noms dans le Registre, auquel cas le Registre identifie l’un des noms comme préféré MIME. Si un ensemble de caractères a plusieurs noms de registre, son nom canonique doit être le nom préféré MIME et les autres noms du Registre doivent être des alias valides. Si un charset pris en charge n’est pas répertorié dans le registre IANA, son nom canonique doit commencer par l’une des chaînes "X-" ou "x-".

Le registre de jeux de caractères IANA change au fil du temps, et donc le nom canonique et les alias d’un charset particulier peuvent également changer au fil du temps. Pour garantir la compatibilité, il est recommandé qu’aucun alias ne soit jamais supprimé d’un ensemble de caractères, et que si le nom canonique d’un ensemble de caractères est modifié, son nom canonique précédent est converti en alias.

<h2>Ensembles< de caractères standard/h2>

« standard »> Chaque implémentation de la plateforme Java est nécessaire pour prendre en charge les ensembles de caractères standard suivants. Consultez la documentation de publication de votre implémentation pour voir si d’autres ensembles de caractères sont pris en charge. Le comportement de ces ensembles de caractères facultatifs peut différer entre les implémentations.

<blockquote><table class="striped » style="width :80%« ><caption style="display :none">Description of standard charsets</caption><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>Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. le bloc latin de base du jeu< de caractères Unicode set/td></tr tr><><th scope="row » style="vertical-align :top">ISO-8859-1&nbsp;&nbsp;</th><td>ISO Latin Alphabet No. 1, a.k.a. ISO-LATIN-1</td></tr tr><><th scope="row » style="vertical-align :top">UTF-8</th><td>Eight-bit UCS Transformation Format/td</tr tr tr><><th scope="row » style="vertical-align :top"><>UTF-16BE/th<>td<seize-bits UCS Transformation Format>, big-endian byte  ; order</td></tr tr><><th scope="row » style="vertical-align :top">UTF-16LE</th><td>Seize-bits UCS Transformation Format, little-endian byte  ; order</td></tr tr><><th scope="row » style="vertical-align :top">UTF-16</th><td>Seize-bits UCS Transformation Format, byte  ; ordre identifié par une marque< d’ordre d’octet facultative/td></tr></tbody></table></blockquote>

L’ensemble UTF-8 de caractères est spécifié par RFC  ; 2279http://www.ietf.org/rfc/rfc2279.txt ; le format de transformation sur lequel il est basé est spécifié dans l’amendement  ; 2 de ISO  ; 10646-1 et est également décrit dans la normehttp://www.unicode.org/unicode/standard/standard.html Unicode.

Les UTF-16 charsets sont spécifiés par RFC  ; 2781http://www.ietf.org/rfc/rfc2781.txt ; les formats de transformation sur lesquels ils sont basés sont spécifiés dans l’amendement  ; 1 de ISO  ; 10646-1 et sont également décrits dans la normehttp://www.unicode.org/unicode/standard/standard.html Unicode.

Les UTF-16 charsets utilisent des quantités de seize bits et sont donc sensibles à l’ordre d’octet. Dans ces encodages, l’ordre d’octet d’un flux peut être indiqué par une marque d’ordre d’octet initiale représentée par le caractère '&#92;uFEFF'Unicode. Les marques d’ordre d’octet sont gérées comme suit :

<ul>

<li>

Lors du décodage, les UTF-16BE ensembles UTF-16LE de caractères interprètent les marques d’ordre d’octet initial comme un <petit>ZERO-WIDTH NON-BREAKING SPACE</small> ; lors de l’encodage, ils n’écrivent pas de marques d’ordre d’octet.

</li>

<li>

Lors du décodage, l’ensemble UTF-16 de caractères interprète la marque d’ordre d’octet au début du flux d’entrée pour indiquer l’ordre d’octet du flux, mais est défini par défaut sur big-endian s’il n’existe aucune marque d’ordre d’octet d’octet ; lors de l’encodage, il utilise l’ordre d’octet big-endian et écrit une marque d’ordre d’octet big-endian.

</li>

</ul>

Dans tous les cas, les marques d’ordre d’octets se produisant après le premier élément d’une séquence d’entrée ne sont pas omises, car le même code est utilisé pour représenter <de petites>ZERO-WIDTH NON-BREAKING SPACE</small>.

Remarque Android : la plateforme Android par défaut est toujours UTF-8.

La StandardCharsets classe définit des constantes pour chacun des ensembles de caractères standard.

<terminologie> h2</h2>

Le nom de cette classe est extrait des termes utilisés dans RFC  ; 2278http://www.ietf.org/rfc/rfc2278.txt. Dans ce document, un jeu de caractères est défini comme la combinaison d’un ou plusieurs jeux de caractères codés et d’un schéma d’encodage de caractères. (Cette définition est déroutante ; certains autres systèmes logiciels définissent l’ensemble de caractères comme synonyme de jeu de caractères codés.)

Un jeu de caractères codés est un mappage entre un ensemble de caractères abstraits et un ensemble d’entiers. US-ASCII, ISO  ; 8859-1, JIS  ; X  ; 0201 et Unicode sont des exemples de jeux de caractères codés.

Certaines normes ont défini un jeu de caractères pour être simplement un ensemble de caractères abstraits sans numérotation attribuée associée. Un alphabet est un exemple de ce jeu de caractères. Toutefois, la distinction subtile entre le jeu de caractères et le jeu de caractères codés est rarement utilisée dans la pratique ; l’ancien est devenu une forme courte pour ce dernier, notamment dans la spécification de l’API Java.

Un schéma d’encodage de caractères est un mappage entre un ou plusieurs jeux de caractères codés et un ensemble d’octets (octets de huit bits). UTF-8, UTF-16, ISO  ; 2022 et EUC sont des exemples de schémas d’encodage de caractères. Les schémas d’encodage sont souvent associés à un jeu de caractères codé particulier ; UTF-8, par exemple, est utilisé uniquement pour encoder Unicode. Toutefois, certains schémas sont associés à plusieurs jeux de caractères codés ; EUC, par exemple, peut être utilisé pour encoder des caractères dans divers jeux de caractères codés asiatiques.

Lorsqu’un jeu de caractères codé est utilisé exclusivement avec un schéma d’encodage de caractères unique, l’ensemble de caractères correspondant est généralement nommé pour le jeu de caractères codé ; sinon, un ensemble de caractères est généralement nommé pour le schéma d’encodage et, éventuellement, les paramètres régionaux des jeux de caractères codés qu’il prend en charge. Il s’agit donc US-ASCII du nom d’un jeu de caractères codé et de l’ensemble de caractères qui l’encode, tandis que EUC-JP le nom de l’ensemble de caractères qui encode le JIS  ; X  ; 0201, JIS  ; X  ; 0208, et JIS  ; X  ; Jeux de caractères codés 0212 pour la langue japonaise.

L’encodage de caractères natif du langage de programmation Java est UTF-16. Un ensemble de caractères dans la plateforme Java définit donc un mappage entre des séquences de seize bits uTF-16 unités de code (c’est-à-dire des séquences de caractères) et des séquences d’octets.

Ajouté dans la version 1.4.

Documentation Java pour java.nio.charset.Charset.

Les parties de cette page sont des modifications basées sur le travail créé et partagé par le projet Android Open Source et utilisés en fonction des termes décrits dans la licence d’attribution Creative Commons 2.5.

Constructeurs

Nom Description
Charset(IntPtr, JniHandleOwnership)

Constructeur utilisé lors de la création de représentations managées d’objets JNI ; appelée par le runtime.

Charset(String, String[])

Initialise un nouvel ensemble de caractères avec le nom canonique et le jeu d’alias donnés.

Propriétés

Nom Description
Class

Retourne la classe runtime de ce Object.

(Hérité de Object)
Handle

Handle de l’instance Android sous-jacente.

(Hérité de Object)
IsRegistered

Indique si ce charset est inscrit ou non dans le Registre IANA Charset.

JniIdentityHashCode

Obtient le code de hachage d’identité affecté à cet homologue Java par le runtime d’interopérabilité.

(Hérité de Object)
JniManagedPeerState

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
JniPeerMembers

Obtient les métadonnées JNI utilisées pour appeler les membres de cet homologue Java.

PeerReference

Obtient la référence d’objet JNI pour cet homologue Java.

(Hérité de Object)
ThresholdClass

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

ThresholdType

Cette API prend en charge l’infrastructure Mono pour Android et n’est pas destinée à être utilisée directement à partir de votre code.

Méthodes

Nom Description
Aliases()

Retourne un jeu contenant les alias de cet ensemble de caractères.

AvailableCharsets()

Construit une carte triée des noms de charset canoniques aux objets charset.

CanEncode()

Indique si ce charset prend en charge l’encodage ou non.

Clone()

Crée et retourne une copie de cet objet.

(Hérité de Object)
CompareTo(Charset)

Compare cet ensemble de caractères à un autre.

Construct(JniObjectReference, JniObjectReferenceOptions)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
Contains(Charset)

Indique si ce charset contient ou non l’ensemble de caractères donné.

Decode(ByteBuffer)

Méthode pratique qui décode les octets de cet ensemble de caractères en caractères Unicode.

DefaultCharset()

Retourne l’ensemble de caractères par défaut de cette machine virtuelle Java.

DisplayName()

Renvoie le nom lisible par l’homme de cet ensemble de caractères pour les paramètres régionaux par défaut.

DisplayName(Locale)

Renvoie le nom lisible par l’homme de cet ensemble de caractères pour les paramètres régionaux donnés.

Dispose()

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
Dispose(Boolean)

Libère les ressources détenues par cet homologue Java.

(Hérité de Object)
DisposeUnlessReferenced()

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
Encode(CharBuffer)

Méthode pratique qui encode les caractères Unicode en octets dans cet ensemble de caractères.

Encode(String)

Méthode pratique qui encode une chaîne en octets dans cet ensemble de caractères.

Equals(Object)

Indique si cet objet est égal ou non à un autre.

Equals(Object)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
ForName(String, Charset)

Retourne un objet charset pour l’ensemble de caractères nommé.

ForName(String)

Retourne un objet charset pour l’ensemble de caractères nommé.

GetHashCode()

Calcule un code de hachage pour cet ensemble de caractères.

IsSupported(String)

Indique si l’ensemble de caractères nommé est pris en charge.

JavaFinalize()
Obsolète.

Appelé par le garbage collector sur un objet lorsque le garbage collection détermine qu’il n’y a plus de références à l’objet.

(Hérité de Object)
Name()

Retourne le nom canonique de cet ensemble de caractères.

NewDecoder()

Construit un nouveau décodeur pour cet ensemble de caractères.

NewEncoder()

Construit un nouvel encodeur pour cet ensemble de caractères.

Notify()

Réveille un thread unique qui attend le moniteur de cet objet.

(Hérité de Object)
NotifyAll()

Réveille tous les threads qui attendent le moniteur de cet objet.

(Hérité de Object)
SetHandle(IntPtr, JniHandleOwnership)

Définit la propriété Handle.

(Hérité de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
ToArray<T>()

Crée un tableau managé à partir de ce wrapper de tableau Java.

(Hérité de Object)
ToString()

Retourne une chaîne décrivant cet ensemble de caractères.

UnregisterFromRuntime()

Annule l’inscription de cet homologue Java à partir du runtime d’interopérabilité.

(Hérité de Object)
Wait()

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti par em ou><em>interrompu</em>.<>

(Hérité de Object)
Wait(Int64, Int32)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)
Wait(Int64)

Provoque l’attente du thread actuel jusqu’à ce qu’il soit réveillé, généralement en étant <averti> par< em>ou <em>interrompu/em<,> ou jusqu’à ce qu’une certaine quantité de temps réel s’est écoulée.

(Hérité de Object)

Implémentations d’interfaces explicites

Nom Description
IComparable.CompareTo(Object)

Compare ce charset à un autre charset par nom canonique, ignorant la casse.

IJavaPeerable.Disposed()

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.Finalized()

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

(Hérité de JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

Méthodes d’extension

Nom Description
GetJniTypeName(IJavaPeerable)

Obtient le nom JNI du type de l’instance self.

JavaAs<TResult>(IJavaPeerable)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

JavaCast<TResult>(IJavaObject)

Effectue une conversion de type vérifiée par le runtime Android.

JavaCast<TResult>(IJavaObject)

Mappage nommé entre des séquences d’unités de code Unicode de seize bits et des séquences d’octets.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Essayez de forcer self le typeTResult, en vérifiant que le forçage est valide côté Java.

S’applique à