Charset Класс

Определение

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

[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
Атрибуты
Реализации

Комментарии

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов. Этот класс определяет методы для создания декодеров и кодировщиков, а также для получения различных имен, связанных с набором символов. Экземпляры этого класса являются неизменяемыми.

Этот класс также определяет статические методы для проверки того, поддерживается ли определенный набор символов, для поиска экземпляров наборов символов по имени и для создания карты, содержащей все наборы символов, поддержка которых доступна на текущей виртуальной машине 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', <small>FULL STOP</small>),

<li> Символ двоеточия ':' ('&#92;u003a', <small>COLON</small>), и

<li> Символ подчеркивания '_' ('&#92;u005f', <small>LOW  LINE</small>).

</ul>

Имя кодировки должно начинаться с буквы или цифры. Пустая строка не является юридическим именем кодировки. В именах символов регистр не учитывается; то есть регистр всегда игнорируется при сравнении имен символов. Имена символов обычно следуют соглашениям, описанным в документе RFC  2278:  Процедуры регистрации набора символов IANA.http://www.ietf.org/rfc/rfc2278.txt

Каждый набор символов имеет каноническое имя , а также может иметь один или несколько псевдонимов. Каноническое имя возвращается методом #name() name этого класса. Канонические имена, по соглашению, обычно в верхнем регистре. Псевдонимы символов возвращаются методом #aliases() aliases .

"hn">Некоторые наборы символов имеют историческое <имя</>i>, определенное для совместимости с предыдущими версиями платформы Java. Историческое имя кодировки — это каноническое имя или один из псевдонимов. Историческое имя возвращается методами getEncoding()java.io.InputStreamReader#getEncoding InputStreamReader классов и java.io.OutputStreamWriter#getEncoding OutputStreamWriter .

"iana"> Если набор символов, указанный в реестре http://www.iana.org/assignments/character-setsнаборов символов IANA, поддерживается реализацией платформы Java, то его каноническим именем должно быть имя, указанное в реестре. Многим наборам символов в реестре присваивается несколько имен, и в этом случае реестр определяет одно из них как предпочтительное для MIME. Если набор символов имеет несколько имен реестра, его каноническое имя должно быть предпочтительным именем MIME, а остальные имена в реестре должны быть допустимыми псевдонимами. Если поддерживаемый набор символов не указан в реестре IANA, его каноническое имя должно начинаться с одной из строк "X-" или "x-".

Реестр наборов символов IANA со временем изменяется, поэтому каноническое имя и псевдонимы определенного набора символов также могут меняться со временем. Для обеспечения совместимости рекомендуется, чтобы из набора символов не удалялся псевдоним, а если каноническое имя набора символов было изменено, то его предыдущее каноническое имя было преобразовано в псевдоним.

<h2>Стандартные кодировки</h2>

"стандартный".> Каждая реализация платформы Java требуется для поддержки следующих стандартных наборов символов. Ознакомьтесь с документацией по выпуску для реализации, чтобы узнать, поддерживаются ли другие наборы символов. Поведение таких необязательных символов может отличаться в разных реализациях.

<blockquote><table class="striped" style="width:80%"><подпись style="display:none">Description of standard charsets</подпись<> thead<>tr><th область="col" style="text-align:left">Charset</th><область="col" style="text-align:left">Description</th></tr></thead><tbody><tr><th область="row" style="vertical-align:top"<US-ASCII>/th><td>Seven-bit ASCII, a.k.a. ISO646-US, a.k.a. Базовый латинский блок набора символов< Юникода/td></tr><tr><th область="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 область="row" style="vertical-align:top"<>UTF-8/th><td>Восьмибитовый формат< преобразования UCS/td></tr><th><область="row" style="vertical-align:top"<UTF-16BE>/th><td>Sixteen-bit UCS Transformation Format, big-endian byte  order</td></tr<>tr><th область="row" style="vertical-align:top"><UTF-16LE/th><td>Sixteen-bit UCS Transformation Format, little-endian byte  order</td></tr><th><область="row" style="vertical-align:top"><UTF-16/th><td>Sixteen-bit UCS Transformation Format, byte  порядок, определяемый необязательной меткой< порядка байтов/td></tr></tbody></table></blockquote>

Набор UTF-8 символов задается rfc  2279http://www.ietf.org/rfc/rfc2279.txt; формат преобразования, на котором оно основано, указывается в&поправки; 2 iso  10646-1 и также описано в стандартеhttp://www.unicode.org/unicode/standard/standard.html Юникода.

Наборы UTF-16 символов задаются RFC  2781http://www.ietf.org/rfc/rfc2781.txt; форматы преобразования, на которых они основаны, указаны в поправке  1 iso  10646-1 и также описаны в стандартеhttp://www.unicode.org/unicode/standard/standard.html Юникод.

Наборы UTF-16 символов используют шестнадцать битов и поэтому чувствительны к байтовому порядку. В этих кодировках порядок байтов потока может быть обозначен начальной меткой порядка байтов , представленной символом '&#92;uFEFF'Юникода . Метки порядка байтов обрабатываются следующим образом:

<ul>

<Литий>

При декодировании UTF-16BE наборы символов и UTF-16LE интерпретируют начальные метки порядка байтов как <небольшое>неразрывное пространство< нулевой ширины или малый>. При кодировании они не записывают метки порядка байтов.

</Литий>

<Литий>

При декодировании UTF-16 набор символов интерпретирует метку порядка байтов в начале входного потока, чтобы указать порядок байтов потока, но по умолчанию — big-endian, если нет метки порядка байтов; при кодировании используется порядок байтов с большим байтом и записывается знак большого порядка байтов.

</Литий>

</ul>

В любом случае метки порядка байтов, возникающие после первого элемента входной последовательности, не опущены, так как тот же код используется для представления <небольших>значений нулевой ширины и неразрывного пробела< или малого> размера.

Примечание Android. Платформа Android по умолчанию всегда имеет значение UTF-8.

Класс StandardCharsets определяет константы для каждого из стандартных наборов символов.

<Терминология< h2>/h2>

Имя этого класса взято из терминов, используемых в RFC  2278http://www.ietf.org/rfc/rfc2278.txt. В этом документе кодировка определяется как сочетание одного или нескольких закодированных наборов символов и схемы кодирования символов. (Это определение сбивает с толку; некоторые другие программные системы определяют кодировку как синоним закодированного набора символов.)

Закодированный набор символов — это сопоставление между набором абстрактных символов и набором целых чисел. US-ASCII, ISO  8859-1, JIS  X  0201 и Юникод являются примерами закодированных наборов символов.

Некоторые стандарты определяют набор символов как просто набор абстрактных символов без связанной назначенной нумеровки. Примером такой кодировки является алфавит. Однако тонкое различие между набором символов и набором закодированных символов редко используется на практике; первое стало краткой формой для второго, в том числе в спецификации API Java.

Схема кодировки символов — это сопоставление одной или нескольких закодированных наборов символов с набором восьмибитовых последовательностей октетов. UTF-8, UTF-16, ISO  2022 и EUC являются примерами схем кодирования символов. Схемы кодирования часто связаны с определенной кодировкой; UTF-8, например, используется только для кодирования Юникода. Однако некоторые схемы связаны с несколькими кодировками; Например, EUC можно использовать для кодирования символов в различных азиатских кодировках.

Если закодированный набор символов используется исключительно с одной схемой кодирования символов, то соответствующий набор символов обычно называется для закодированного набора символов; В противном случае кодировка обычно называется в соответствии со схемой кодирования и, возможно, языковым стандартом поддерживаемых наборов закодированных символов. Следовательно US-ASCII , является как именем закодированной кодировки, так и кодировкой, которая ее кодирует, в то время как EUC-JP является именем набора символов, кодируемого JIS  X  0201, JIS  X  0208 и JIS  X  Кодированные наборы символов 0212 для японского языка.

Собственная кодировка символов языка программирования Java — UTF-16. Таким образом, набор символов на платформе Java определяет сопоставление между последовательностями шестнадцатибайтовых единиц кода UTF-16 (т. е. последовательности символов) и последовательностями байтов.

Добавлено в версии 1.4.

Документация по Java для java.nio.charset.Charset.

Части этой страницы являются изменениями, основанными на работе, созданной и совместно используемой проектом и используемой в соответствии с условиями, Creative Commons 2.5 Attribution License Creative Commons 2.5 Attribution License.

Конструкторы

Charset(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Charset(String, String[])

Инициализирует новый набор символов с заданным каноническим именем и набором псевдонимов.

Свойства

Class

Возвращает класс среды выполнения данного объекта Object.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
IsRegistered

Указывает, зарегистрирован ли этот набор символов в реестре наборов символов IANA.

JniIdentityHashCode

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
JniPeerMembers

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

PeerReference

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Aliases()

Возвращает набор, содержащий псевдонимы этого набора символов.

AvailableCharsets()

Создает отсортированную карту от канонических имен символов до объектов charset.

CanEncode()

Указывает, поддерживает ли этот набор символов кодировку.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
CompareTo(Charset)

Сравнивает эту кодировку с другой.

Contains(Charset)

Указывает, содержит ли этот набор символов заданный набор символов.

Decode(ByteBuffer)

Удобный метод, который декодирует байты в этом кодировке в символы Юникода.

DefaultCharset()

Возвращает набор символов по умолчанию для этой виртуальной машины Java.

DisplayName()

Возвращает понятное имя этого набора символов для языкового стандарта по умолчанию.

DisplayName(Locale)

Возвращает понятное имя этой кодировки для заданного языкового стандарта.

Dispose()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
Dispose(Boolean)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
Encode(CharBuffer)

Удобный метод, который кодирует символы Юникода в байты в этом наборе символов.

Encode(String)

Удобный метод, который кодирует строку в байты в этом наборе символов.

Equals(Object)

Указывает, равен ли этот объект другому объекту.

ForName(String)

Возвращает объект charset для именованного набора символов.

GetHashCode()

Вычисляет хэш-код для этого набора символов.

IsSupported(String)

Указывает, поддерживается ли именованный набор символов.

JavaFinalize()

Вызывается сборщиком мусора для объекта , когда сборка мусора определяет, что больше нет ссылок на объект .

(Унаследовано от Object)
Name()

Возвращает каноническое имя этого набора символов.

NewDecoder()

Создает новый декодер для этого набора символов.

NewEncoder()

Создает новый кодировщик для этого набора символов.

Notify()

Пробуждает один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от Object)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
ToArray<T>()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
ToString()

Возвращает строку, описывающую этот набор символов.

UnregisterFromRuntime()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
Wait()

Вызывает ожидание текущего потока, пока он не пробудится, как правило, из-за <уведомления><<> или>прерывания или прерывания.><

(Унаследовано от Object)
Wait(Int64)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)
Wait(Int64, Int32)

Вызывает ожидание текущего потока, пока он не пробудится, как правило, путем <уведомления><<> или>прерывания или прерывания<> или до истечения определенного количества реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

IComparable.CompareTo(Object)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

IJavaPeerable.Disposed()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.DisposeUnlessReferenced()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.Finalized()

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.JniManagedPeerState

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

(Унаследовано от Object)

Методы расширения

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверенного средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

GetJniTypeName(IJavaPeerable)

Именованное сопоставление между последовательностями шестнадцатибитных единиц кода Юникода и последовательностями байтов.

Применяется к